我正在创建一个Web应用程序,它托管在启用表单身份验证的网站下。我的身份验证数据库中有一个角色名为“管理员”。以下是我的控制器代码:
[RequireHttps]
[Authorize(Roles = "Admins")]
public ActionResult Index()
{
return this.View();
}
当我访问主页时,如果没有进行身份验证,它会将我重定向到登录页面,在那里我输入我的凭据。然后登录页面会重定向回新应用程序的主页,但控制器无法识别用户是否已通过身份验证。
我已经去掉了
Authorize
属性,并查看了在Chrome开发人员控制台中发送的请求,确认确实发送了cookie。但是,如果我保留Authorize
属性,并转到主页,则我的控制器中的cookie集合为空。标头集合包含一个标题,名为“Cookie”,其值包含.ASPXAUTH cookie。登录页面使用以下代码进行登录:
FormsAuthentication.SetAuthCookie(userName, remember, "/");
这种行为在所有主要浏览器中都可以重现。
我该怎么做才能使请求的Cookies集合被填充?
我需要做什么才能让应用程序意识到用户真正已经通过验证了?
编辑:
我还没有解决这个问题,但我相当确定与ASPXAUTH cookie的过滤有关。