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