使用OpenID进行网站身份验证

时间:2009-07-23 13:42:54

标签: c# .net asp.net sql-server openid

我想在使用ASP.NET 2.0和SQL Server 2005的新应用程序中实现OpenID。

我选择Twitter,Facebook和Google作为潜在的OpenID提供商。

我找到the Twitter implementation in .NET而我是studying Google's OpenID implementation,但我想确保我的设计(大部分都是!)完美无瑕。

  1. 我的数据库架构是否正确?我已将Reader与仅包含ProviderOpenID列的nullable Name相关联。我存储OauthToken并在每次请求时使用它来获取对其个人资料的访问权并验证登录。我错过了什么吗?

  2. 有人能告诉我是否有适用于Google的OpenID提供程序的.NET实现的开源库?我找到了following tutorial on Google,但我不明白它是如何工作的。有没人试过这个?这是最好的方法吗?

2 个答案:

答案 0 :(得分:5)

Facebook和Twitter 不是 OpenID提供商。看起来您已经找到了其专有机制的解决方案。但我只想澄清它是什么而不是。

是的,Google是OpenID提供商。对于ASP.NET 2.0,您链接到的DotNetOpenId是进入IMO的方式。不介意维基(当时已经失败但现在已经失败)。这是针对.NET 3.5的新DotNetOpen Auth 库。既然你专门针对.NET 2.0(这是故意吗?)你需要使用Google Code项目网站(http://dotnetopenid.googlecode.com/)上的DotNetOpenId并忽略“我们已移动”链接,因为那样引导您进入.NET 3.5库。你想要的是DotNetOpenId v2.5.5。它附带了一些示例,向您展示如何获得OpenID。

请注意,Google在使用OpenID方面有一些特点,其中最值得注意的是输入“google.com”,因为openid标识符不起作用(目前)。您必须输入较长的https://www.google.com/accounts/o8/id

答案 1 :(得分:0)

我想我正在收听有关编写此工具身份验证工具的人的dotnetrocks播客: https://rpxnow.com/