请求中未找到.ASPXAUTH Cookie

3

我正在创建一个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的过滤有关。


你能发布一下登录操作的代码吗?在所有浏览器中都可以使用还是只能在Chrome中使用? - Win
2个回答

1
我相信这个问题有多个原因。在我的情况下,问题是我使用的MVC版本写入cookie与解密cookie的版本不同。我将我的站点全部改为运行MVC 4,并且一个站点创建的cookie可以被另一个站点使用。

你是如何在同一个项目中使用两个不同版本的MVC框架的? - Phillip Copley
这是两个不同的项目,但使用了相同的 cookie。 - Dan

0

.ASPXAUTH cookie是否是安全的cookie,即SSL?如果是,并且您的Index.aspx仅在HTTP而不是HTTPS上运行,则无法在集合中看到该cookie。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接