我有几个网站,我现在需要为每个人保持相同的会话,而不必在每次打开网站时登录。
我在我的网站上有以下配置。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" defaultUrl="~/Default.aspx" timeout="2880" slidingExpiration="true" name=".ApplicationsManagerSessionCookie" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
字符串
在每个站点之间唯一发生变化的是name属性的值。
我尝试了以下配置
1.删除属性名称
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" defaultUrl="~/Default.aspx" timeout="2880" slidingExpiration="true" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
型
1.添加域名
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" defaultUrl="~/Default.aspx" timeout="2880" slidingExpiration="true" domain="foo.com" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
型
1.添加域名和路径
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" defaultUrl="~/Default.aspx" timeout="2880" slidingExpiration="true" domain="foo.com" path="/" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
型
1.使用相同的属性名
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" defaultUrl="~/Default.aspx" timeout="2880" slidingExpiration="true" name="._SessionCookie" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
型
值得一提的是,该应用程序是asp.net webforms
Login.aspx.cs
if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
{
FormsAuthentication.SetAuthCookie(_key.User, false); //guardamos el login
Response.Redirect("~", false); //redireccionamos a la pagina principal
}
else
{
FormsAuthentication.RedirectFromLoginPage(_key.User, false);
}
型
我该怎么解决这个问题?
1条答案
按热度按时间cfh9epnr1#
若要跨应用程序配置表单身份验证,请为参与共享表单身份验证的所有应用程序将Web.config文件的forms和machineKey部分的属性设置为相同的值。
更多信息请参考此链接:Forms Authentication Across Applications。