iis 保持站点之间的表单身份验证会话

fnvucqvd  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(104)

我有几个网站,我现在需要为每个人保持相同的会话,而不必在每次打开网站时登录。
我在我的网站上有以下配置。

<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);
}


我该怎么解决这个问题?

cfh9epnr

cfh9epnr1#

若要跨应用程序配置表单身份验证,请为参与共享表单身份验证的所有应用程序将Web.config文件的forms和machineKey部分的属性设置为相同的值。
更多信息请参考此链接:Forms Authentication Across Applications

相关问题