C# 如何让用户只登录一次?
我们使用ASP会员数据库来管理我们的网站安全,每个网站对应一个会员角色。我创建了一个门户网站,列出了指向这些项目网站的所有超链接(任何角色中的所有用户都可以登录到此门户网站),并在webconfig文件中列出了每个项目网站的所有角色:C# 如何让用户只登录一次?,c#,asp.net-membership,C#,Asp.net Membership,我们使用ASP会员数据库来管理我们的网站安全,每个网站对应一个会员角色。我创建了一个门户网站,列出了指向这些项目网站的所有超链接(任何角色中的所有用户都可以登录到此门户网站),并在webconfig文件中列出了每个项目网站的所有角色: <authorization> <allow roles="Administrators,ProjectId1_Member,ProjectId10_Member,ProjectId11_Member,ProjectId1
<authorization>
<allow roles="Administrators,ProjectId1_Member,ProjectId10_Member,ProjectId11_Member,ProjectId12_Member,ProjectId13_Member,ProjectId14_Member,ProjectId15_Member,ProjectId16_Member,ProjectId17_Member,ProjectId18_Member,ProjectId19_Member,ProjectId2_Member,ProjectId21_Member,ProjectId22_Member,ProjectId23_Member,ProjectId24_Member,ProjectId25_Member, "/>
<deny users="*"/>
</authorization>
但是用户登录到门户网站是有效的。但是,如果用户单击超链接导航到特定的项目网站,用户将再次导航到登录页面。有没有办法避免双重登录
谢谢
Wei确保路径为/并启用跨路径重定向
<authentication mode="Windows">
<forms
name=".ASPXAUTH"
loginUrl="login.aspx"
defaultUrl="default.aspx"
protection="All"
timeout="30"
path="/"
requireSSL="false"
slidingExpiration="true"
cookieless="UseDeviceProfile"
domain="companySite"
enableCrossAppRedirects="true">
<credentials passwordFormat="SHA1" />
</forms>
<passport redirectUrl="internal" />
</authentication>
您的表单验证cookie很可能不在网站之间共享。这些网站的名称是什么?它们是www.site1.com
、www.site2.com
、还是site1.company.com
、site2.company.com
或其他什么?对Tisho来说:我们的网站名称是companySite/projectA/index.aspx,companySite/projectB/index.aspx。致Wiktor:我应该如何在网站之间共享身份验证cookie?谢谢你们!谢谢,达瑞克。我是否需要将此代码放入每个站点的Web.config中?此外,我是否需要更改除“域”之外的任何参数?从技术上讲,域可以保持为空,填充它会使cookie更加安全。是的,每个web.config都需要类似的身份验证节点。这意味着重定向可以是不同的,超时可以是不同的,但其余的,尤其是path、passwordFormat和cookieLess,需要相同。