Mar*_*tin 25 asp.net forms-authentication
我有两个域名,domain1.com和domain2.com指向同一个asp.net网站,该网站在表单身份验证中使用asp.net build.问题是,即使域指向同一网站,用户也只能一次对一个域进行身份验证.因此,如果他首先使用www.domain1.com然后访问www.domain2.com,那么后面的网站就是同一个网站,但他只对www.domain1.com进行了身份验证.如果他在访问网站时使用www而不是www,也会发生同样的事情.
这是我用来登录的:
FormsAuthentication.RedirectFromLoginPage(username, cookie.Checked);
Run Code Online (Sandbox Code Playgroud)
要检查登录:
User.Identity.IsAuthenticated
Run Code Online (Sandbox Code Playgroud)
如何让用户获得针对指向同一网站的所有域的身份验证?
Zha*_*uid 44
您所追求的是单点登录解决方案.
由于ASP.NET身份验证通常基于cookie,因此有两点需要注意:
更深入地研究这两个方面:
1.正确设置cookie
您需要确保ASP.NET将身份验证票证cookie写入根域,而不是使用domainforms元素的属性完成显式域:
<forms
name="name"
loginUrl="URL"
defaultUrl="URL"
domain=".example.com">
</forms>
Run Code Online (Sandbox Code Playgroud)
您应将域名设置为".example.com" - 请注意领先期间 - 这是关键.这样,对example.com和www.example.com的请求将正确读取cookie并对用户进行身份验证.
2.将用户退回到备用域
我们在使用单点登录的几个站点上实现的是往返登录过程.用户在第一个域上进行身份验证,我们对登录详细信息进行加密,并将其重定向到第二个域上的已知页面,将其登录到那里,然后重定向回原始服务器.
此客户端重定向很重要 - 只有在客户端有响应时才会写入cookie,浏览器必须访问第二个域才能真正看到cookie.
在这种设置中需要考虑的其他细节:
您还可以查看"跨应用程序的表单身份验证"
| 归档时间: |
|
| 查看次数: |
33794 次 |
| 最近记录: |