在Authentication Cookie上设置域会破坏MVC中的身份验证

时间:2011-08-17 20:24:59

标签: asp.net asp.net-mvc forms-authentication

我想在两个网站之间共享身份验证,因为我慢慢地从旧网站重写功能并转换到新网站。我在这里找到了答案:Sharing Authentication between ASP.NET sites

问题是,当我设置域属性时,身份验证cookie将停止工作。用户仍然成功进行身份验证,并且cookie似乎已创建并正确设置...但是当加载站点时,用户被强制进入登录屏幕。

我正在使用标准的MVC生成的身份验证代码,只要未设置域,该代码就可以正常工作:

public void SignIn(string userName, bool createPersistentCookie)
        {
            if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");

            FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);

        }

如果我调试并查看FormsAuthentication对象,它看起来像域,其他一切都设置正确。

那么可能导致这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:1)

您可以尝试在web.config中设置机器密钥吗?每个网站都必须相同。

http://aspnetresources.com/tools/machineKey