DotNetOpenAuth OpenIdTextBox适用于谷歌/雅虎

时间:2010-05-11 15:49:35

标签: dotnetopenauth

如果我想将DotNetOpenAuth(主要用于人们使用他们的Google / Yahoo帐户登录,而不是充当提供商)整合到我现有的网站中,这个一线控制是否足够好?

<rp:OpenIdTextBox ID="OpenIdTextBox1" runat="server" />

假设,如果用户想要以Google身份登录,我只需将文本框设置为“https://www.google.com/accounts/o8/id”即可登录。我尝试使用我的Google帐户,看起来很有效,我可以从HttpContext.Current.User.Identity.Name获取令牌。

这种“一线”解决方案对于生产来说是否足够安全?或者我必须使用“OpenIdSelector”或“OpenIDLogin”控件吗?

我还打开了.net模板和一些样本,它们非常复杂。有PAPE策略,xrds.aspx(用于发现),ConsumerKey + ConsumerSecret等。作为一个新手,我很困惑。任何关于此的提示都将非常感激。感谢

1 个答案:

答案 0 :(得分:1)

安全方面你所做的就足够了。但是你需要/需要做的更多。第一个是在顶行页面标记上设置此属性:

<%@ Page ValidateRequest="false" %>

否则,您的用户将看到随机登录失败,因为某些OpenID消息“看起来”对ASP.NET很危险。

您要做的下一件事是设置您的xrds.aspx页面及其主页上的链接。这对于获得基本的OpenID工作并不是绝对必要的,但如果你有开放的重定向网址,它会增强你网站的安全性,而如果你没有正确实现这个,谷歌和雅虎等一些提供商可能会向你的用户显示丑陋的警告信息。 RP发现“您网站的方面。

在那之后,如果你得到了你需要的一切,你就可以自由地离开它。

但如果您只对Google用户感兴趣,请考虑使用OpenIdButton ASP.NET控件而不是OpenIdTextBox,因为它可能会为您的用户提供更好的视觉效果。