Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让用户只登录一次?_C#_Asp.net Membership - Fatal编程技术网

C# 如何让用户只登录一次?

C# 如何让用户只登录一次?,c#,asp.net-membership,C#,Asp.net Membership,我们使用ASP会员数据库来管理我们的网站安全,每个网站对应一个会员角色。我创建了一个门户网站,列出了指向这些项目网站的所有超链接(任何角色中的所有用户都可以登录到此门户网站),并在webconfig文件中列出了每个项目网站的所有角色: <authorization> <allow roles="Administrators,ProjectId1_Member,ProjectId10_Member,ProjectId11_Member,ProjectId1

我们使用ASP会员数据库来管理我们的网站安全,每个网站对应一个会员角色。我创建了一个门户网站,列出了指向这些项目网站的所有超链接(任何角色中的所有用户都可以登录到此门户网站),并在webconfig文件中列出了每个项目网站的所有角色:

<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,需要相同。