我有一个 ASP.NET 应用程序,它将身份验证 cookie 发送到 ASP.NET MVC 应用程序,用作后台应用程序。
我添加了一个全局过滤器,用于检查身份验证 cookie 的每个控制器操作。如果 cookie 存在,它允许用户进入页面。
代码如下所示:
public class SecurityFilter : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
// TODO: For some reason .AUTHCookie cookie isn't exist in request context of filter,
HttpCookie cookie = filterContext.RequestContext.HttpContext.Request.Cookies[".AUTHCookie "];
if (cookie != null) {
另一方面,我可以Application_BeginRequest
在 Global.asax 文件中看到从 ASP.NET 应用程序发送的 cookie。
cookie 在哪里以及为什么消失了?cookie 在 MVC 请求处理管道的哪个部分被丢弃?
protected void Application_BeginRequest(object sender, EventArgs e)
{
var cookies = HttpContext.Current.Request.Cookies;
// HERE I CAN SEE BOTH cookies. In filter action only one cookie was found. The authentication cookie is thrown somewhere ...
}