Asp.net mvc 2 存储用户OpenID以及如何处理不同的提供者URL

Asp.net mvc 2 存储用户OpenID以及如何处理不同的提供者URL,asp.net-mvc-2,openid,dotnetopenauth,Asp.net Mvc 2,Openid,Dotnetopenauth,我正在为一个新的“爱好”项目探索OpenID。主要是为了了解它的工作原理,下载了DotNetOpenAuth示例,并查看了Nerddinner实现 我有几个问题 您在本地存储什么来识别返回的用户(角色管理、他们的帖子等等)?我看到的是人们在使用ClaimedIdentifier,这就引出了下一个问题 如何处理用户为OpenID选择另一个url的问题 如果我使用谷歌作为我的提供商,我可以使用“http://www.google.com/accounts/o8/id“作为url或我可能使用”http

我正在为一个新的“爱好”项目探索OpenID。主要是为了了解它的工作原理,下载了DotNetOpenAuth示例,并查看了Nerddinner实现

我有几个问题

  • 您在本地存储什么来识别返回的用户(角色管理、他们的帖子等等)?我看到的是人们在使用ClaimedIdentifier,这就引出了下一个问题

  • 如何处理用户为OpenID选择另一个url的问题

  • 如果我使用谷歌作为我的提供商,我可以使用“http://www.google.com/accounts/o8/id“作为url或我可能使用”http://www.google.com/profiles/username". 在DotNetOpenAuth依赖方示例中,使用这两个参数时,我得到了不同的ClaimedIdentifier值

    www.google.com/accounts/o8/id?id=blahblahbla 和 www.google.com/profiles/

    看看stackoverflow.com的登录,它似乎可以处理这个问题,并在使用谷歌URL或facebook时让我进入我的帐户

    但是不同的OpenID提供者彼此都不了解,对吗

    无论如何,我希望你们中的一些聪明人能帮助我理解:)

    --


    Christian

    您希望使用
    表单身份验证
    方法使asp.net保持用户登录。您只需使用OpenId验证来自您不管理的提供商的用户名和密码


    是的,声明的标识符是标识开放id提供者中的用户的令牌。如果要为用户分配多个声明的标识符,只需将其声明的所有标识符存储在数据库中即可。在身份验证过程中,检查哪个用户附加到该声明的标识符。

    您想使用
    表单身份验证
    方法使asp.net保持用户登录。您只需使用OpenId验证来自您不管理的提供商的用户名和密码


    是的,声明的标识符是标识开放id提供者中的用户的令牌。如果要为用户分配多个声明的标识符,只需将其声明的所有标识符存储在数据库中即可。在身份验证过程中检查哪个用户附加到该声明的标识符。

    谢谢Nick,但是stackoverflow在使用两个不同的URL登录时如何知道我是同一个用户?我甚至尝试在不同的浏览器中确保没有留下cookies来将一次登录尝试与另一次登录尝试关联起来。我是否遗漏了OpenID的某些内容?StackOverflow使用了一种称为stackAuth的东西,这是一种他们为跨越所有站点而构建的自定义解决方案。我只能想象其中蕴含着魔力。我想,在某个时候,你必须在连接其他URL时登录。谢谢Nick,但是stackoverflow在使用两个不同的URL登录时怎么知道我是同一个用户?我甚至尝试在不同的浏览器中确保没有留下cookies来将一次登录尝试与另一次登录尝试关联起来。我是否遗漏了OpenID的某些内容?StackOverflow使用了一种称为stackAuth的东西,这是一种他们为跨越所有站点而构建的自定义解决方案。我只能想象其中蕴含着魔力。在某个时候,你必须登录,而附加其他虽然我认为。