2010-05-11 48 views
0

如果我想将DotNetOpenAuth(主要用于人们使用他们的Google/Yahoo帐户登录,而不是作为提供程序)集成到我的现有站点,这一行控制是否足够好?DotNetOpenAuth OpenIdTextBox对于Google/Yahoo

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

说,如果用户想要登录谷歌,我可以简单地设置文本框为“https://www.google.com/accounts/o8/id”,然后他们可以登录。我试着用我的Google帐户,它似乎工作,我可以从HttpContext.Current.User.Identity.Name获取令牌。

这是“一线”解决方案足够安全的生产?还是必须使用“OpenIdSelector”或“OpenIDLogin”控件?

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

回答

1

安全方面,你所做的就足够了。但还有更多,你会想要/需要做的。第一个是设置该属性对您的顶线页面标签:

<%@ Page ValidateRequest="false" %> 

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

您要做的下一件事是设置您的xrds.aspx页面以及从您的主页到它的链接。这对于获得基本的OpenID工作并不是必须的,但是如果您有开放的重定向器URL,它可以增强您网站的安全性,而且如果您没有正确实施此“解决方案”,Google和Yahoo等一些提供商可以向用户显示难看的警告消息。 RP发现“方面。

之后,如果您获得了所需的一切,那么您可以自由离开。

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

+0

非常感谢Andrew对你的提示,他们非常有用。你的DotNetOpenAuth简直太棒了,保持良好的工作。 我越想越想使用“OpenIdSelector”。我想validaterequest和xrds.aspx提示也适用于OpenIdSelector,对吧? – userb00 2010-05-12 19:13:16

+0

谢谢。这是正确的。 – 2010-05-13 05:35:29