通过MVC中的不同网站进行OpenId身份验证

时间:2013-02-08 15:48:38

标签: asp.net-mvc openid dotnetopenauth

我必须开发一个实现自定义身份验证的网站。 到目前为止没问题,我应该使用会员提供商等等。 现在出现问题....我必须创建其他网站,可以从主要网站访问,而无需要求用户凭据。如果用户未经过身份验证,此站点必须以静默方式登录或再次显示登录表单。

我想我必须以某种方式使用DotNetOpenAuth和OpenId身份验证,但我花了几天时间搜索互联网而没有找到任何起点。 所有样本都使用谷歌或Facebook,但不是我的情况....

基本上....

  1. 用户登录主网站。
  2. 点击指向外部网站的链接
  3. 外部网站“识别”用户已登录并提供访问权
  4. 我对OpenId感到困惑,并希望有人能给我一些提示。

    任何帮助都将非常感激

    谢谢!

4 个答案:

答案 0 :(得分:0)

听起来您想成为OpenID提供商(http://openid.net/add-openid/become-a-provider/)。搜索OpenID提供程序库。实施OpenID提供程序后,每个外部网站都需要使用OpenID依赖方库实现OpenID。

答案 1 :(得分:0)

如果您具有灵活性,我还建议调查MVC4,它内置了对ClaimsIdentity的支持,可以使用OpenId,OAuth,单点登录(SSO)和联合身份验证等方式为外部身份验证提供更好的支持。我正在尝试在我的应用程序中实现这一点,所以我还在学习。我还在尝试研究Windows Identity Framework(WIF)但是我仍然不确定它在所有这些方面的作用。这不是一个答案,因为它是我认为你可能从中受益的新方法。

答案 2 :(得分:0)

DotNetOpenAuth可以提供您需要的OpenID Provider功能。还有提供者samples available from Sourceforge。查找OpenIdProviderMvc示例。

考虑到你想要的是两个相关网站之间的SSO登录体验,我建议你研究名称中带有“SSO”的DNOA样本。

答案 3 :(得分:0)

我不确定您的项目规模或范​​围。如果它只有两个网站和少量流量,那么实施身份提供商(OpenID提供商)是一种矫枉过正。相反,您可以查看一个简单的方法,例如http://www.youtube.com/watch?v=1u7-sBadfW4

然而,如果这不仅仅是两个网站,它总是更好地坚持开放标准,因为这将带来诸如安全性,可扩展性,互操作性等优势。但仍有免费和开源的openID您可以下载并开始工作的提供商(http://wso2.com/products/identity-server/