- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在 WebAPI 管道的身份验证步骤中读取/写入 cookie。我为此创建了一个自定义过滤器。
为了遵守自托管概念,访问 cookie 并将其写入客户端的安全方式是什么? Rick Strahl评论说如果我们使用 HttpContext.Current.Response.Cookies.Add()
,并且我的应用程序是自托管的,上下文可能/将不存在。
那么我如何使用 HttpAuthenticationContext
将 cookie 写到客户端并且仍然是自托管安全的?
最佳答案
您无法从 IAuthenticationFilter.AuthenticateAsync()
中访问 authContext.ActionContext.Response
。好吧,实际上你可以,但只是为了设置一个新的响应并缩短管道的其余部分。
我遇到了同样的问题(需要在成功验证后设置 cookie)并通过实现 IActionFilter
以及 IAuthenticationFilter
解决了这个问题:
async Task<HttpResponseMessage> IActionFilter.ExecuteActionFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func<Task<HttpResponseMessage>> continuation)
{
// Process the request pipeline and get the response (this causes the action to be executed)
HttpResponseMessage response = await continuation();
// Here you get access to:
// - The request (actionContext.Request)
// - The response (response) and its cookies (response.Headers.AddCookies())
// - The principal (actionContext.ControllerContext.RequestContext.Principal)
return response;
}
参见:Set cookie from Web Api 2 IAuthenticationFilter AuthenticateAsync method
关于c# - 在 HttpAuthenticationContext 中为 IAuthenticationFilter 设置 Cookie 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29378822/
我需要在 WebAPI 管道的身份验证步骤中读取/写入 cookie。我为此创建了一个自定义过滤器。 为了遵守自托管概念,访问 cookie 并将其写入客户端的安全方式是什么? Rick Strahl
我正忙于实现和身份验证过滤器: public Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken c
我是一名优秀的程序员,十分优秀!