-
14-10-2019 - |
题
我使用的OpenID与Stackoverflow上的OpenID相同来验证我的用户。不过,我真正需要做的是在我网站的所有子域中都有OpenID工作。
该站点的行为与kijiji大致相同,因为每个区域都有自己的子域
- calgary.example.com
- toronto.example.com
- Vancouver.example.com
- ETC
当用户登录“卡尔加里”并随后将其登录到“多伦多”中时,他们将被迫在提供商处“授予许可”,从而导致新的OpenID,并导致新的登录名。
我的应用程序“可以”在一个帐户下具有多个OpenID的菜单,但这会变得很麻烦。
有没有办法将提供商链接到顶级域并随后在所有子域中工作?
我正在使用dotnetopenauth。
我的想法是始终迫使用户登录 http://example.com 然后使用表格身份验证 domain = ".example.com"
允许导航到所有子域。
解决方案
是的。设置 Realm
ASP.NET控件或您的属性 IAuthenticationRequest
(如果您以编程方式进行操作)到“ https:// gy.example.com”。请注意,该方案可以是http或https,但是 必须 匹配您的返回属性中的任何方案,该方案将(默认情况下)是当前请求中使用的方案。
但是请注意,如果您有Google的现有用户,那么您的领域的一次更改将导致Google为您的用户生成全新标识符,因此他们都将失去对帐户的访问权限。因此,一直以来决定并保留一个领域非常重要,否则您必须跳过主要的篮球,以便以后更改时将用户绑定到他们的帐户。
但是不用担心通配符本身。当您将https:// example.com设置为您的领域时,与该模式相匹配的所有单个站点都将获得 相同的 Google标识符。
不隶属于 StackOverflow