加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

Asp.net形成认证和多个域

发布时间:2020-12-15 18:51:25 所属栏目:asp.Net 来源:网络整理
导读:我有两个域,domain1.com和domain2.com指向同一asp.net网站使用asp.net构建在窗体身份验证。问题是,即使域指向同一网站,用户一次只能获得一个域的身份验证。因此,如果他先使用www.domain1.com,然后访问www.domain2.com,它是在后面的同一个网站,但他只
我有两个域,domain1.com和domain2.com指向同一asp.net网站使用asp.net构建在窗体身份验证。问题是,即使域指向同一网站,用户一次只能获得一个域的身份验证。因此,如果他先使用www.domain1.com,然后访问www.domain2.com,它是在后面的同一个网站,但他只能通过认证www.domain1.com。同样的事情发生,如果他在访问网站时使用www而不是www。

这是我用来登录:

FormsAuthentication.RedirectFromLoginPage(username,cookie.Checked);

检查登录:

User.Identity.IsAuthenticated

如何使用户获得对指向同一网站的所有域的身份验证?

解决方法

您接下来是一个单点登录解决方案。

由于ASP.NET身份验证通常基于cookie,因此有两件事要注意:

>正确设置您的Cookie。
>在注册期间将用户跳转到备用域。

看看这两个更深入:

1.正确设置Cookie

您需要确保ASP.NET正在将认证券Cookie写入根域,而不是显式域,这是使用forms元素的domain属性完成的:

<forms 
   name="name" 
   loginUrl="URL" 
   defaultUrl="URL"
   domain=".example.com">
</forms>

您应该将您的网域设置为“.example.com” – 注意前导期间 – 这是关键。这样,对example.com和www.example.com的请求将正确读取cookie,并对用户进行身份验证。

2.将用户退回到备用域

我们在使用单点登录的几个网站上实现的是往返登录过程。用户在第一个域上进行身份验证,我们加密登录详细信息,并将其重定向到第二个域上的已知页面,将其记录在那里,然后重定向回原始服务器。

这个客户端重定向很重要 – Cookie只有在有响应回到客户端时才写入,浏览器必须访问第二个域才能真正看到cookie。

在这种设置中要考虑的其他细节:

>您可能想要在加密的登录详细信息上超时,以便从浏览器历史记录中调用该网址不会自动记录用户。
>如果域位于不同的服务器上,则需要确保机器密钥配置相同,以便可以正确加密和解??密详细信息,或使用其他一些共享密钥。
>您可能希望有一个机制来从原始服务器调用用户ReturnUrl,以便您可以将它们发送回正确的位置。

你也可以看看“Forms Authentication Across Applications”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读