我通过ASP.NET WebAPI
自托管了OWIN
,并且有一个端点执行ROPC(资源所有者密码凭证)流。在我的API内部,我通过IdentityServer3
手动调用了/login?signin
登录API(HttpClient
端点)。我得说,以一种特定的专用方式为我的服务器使用ROPC有点黑。
成功验证登录凭据后,IdentityServer3
尝试重定向到/permissions
端点。服务器执行该工作时,它会在其请求标头中请求具有三个cookie值的权限页面。 idsrv
,idsrv.xsrf
和idsvr.session
。
[HttpGet]
public async bool LoginResult(User user)
{
.
.
. build up a request message...
. putting 'http://localhost:1234/login?signin={hash}'
. and other protocol specific values
.
var response = await HttpClient.SendAsync(requestMessage);
// Here, I need the 'idsrv' cookie value before returning this response.
return response;
}
在返回我自己的idsvr
请求的响应之前,我需要获取HttpClient
值。但是我似乎无法在端点范围内跟踪内部请求的详细信息。
在http通话期间是否存在包含所有请求和响应的属性或上下文?我签出了OwinContext
,看起来好像没有任何相关内容对象。