2013-06-03 121 views
3

我想实现OAuth功能,以允许我正在构建的应用程序的用户通过Facebook,Twitter和Google plus进行登录。我迄今发现的每篇文章似乎都建议从头开始创建一个MVC 4'Internet应用程序'项目。创建支持Facebook,Twitter和Google+的.NET网站OAuth登录

实现此功能所需的相关参考,代码片段,插件等是什么?

我目前正在使用Forms授权。

+0

http://dotnetopenauth.net/ – SLaks

+5

OAuth更多的是授权网站代表最终用户行事;更不用说是一般的认证机制。你可能想看看OpenID呢? –

回答

1

一旦你设置了表单认证MVC 4内置了支持用户使用OpenID和OAuth使用名为DotNetOpenAuth的开源项目进行认证,它是一个非常类似的系统,它使用cookie和重定向来形成认证。

这些服务只需要配置,并且这在应用程序启动时发生。在Application_Start()事件内部有一个调用AuthConfig.RegisterAuth(),其中只包含注释掉的代码给第三方服务。

在您可以使用这些服务之前,您需要在大多数服务中注册您的应用程序。当您向第三方注册时,您通常会分配一个appId和一个appSecret。您需要将这些值插入到您作为客户端注册到的代码中。

谷歌是一家提供商注释了谁不需要任何注册,所以你可以取消注释该行。 OAuthWebSecurity.RegisterGoogleClient();在AuthConfig.cs文件中。

当您重新构建应用程序并转到登录页面时,您会在右侧看到一个Google按钮,您可以按此按钮通过Google服务登录。此按钮会将用户重定向到Google,以便用户使用他们的Google帐户登录。一旦他们登录Google,就会询问用户是否满意您的应用程序的电子邮件地址。用户必须回答是,如果拒绝,他们不会登录到您的应用程序。

Google会重新回到您的应用程序,发送一些加密密封并签名的参数,以便OpenAuth可以验证Google是否确实对用户进行了身份验证。一旦用户成功通过身份验证并登录后,他们就可以通过点击将显示的注册按钮来创建一个账户。

AuthConfig.cs文件顶部的注释中有一个链接,该链接指向一个页面,告诉您如何注册其他第三方服务。 http://go.microsoft.com/fwlink/?LinkID=252166

+1

请注意,[只提供链接的答案](http://meta.stackoverflow.com/tags/link-only-answers/info),所以答案应该是搜索解决方案的终点(vs.而另一个引用的中途停留时间往往会随着时间推移而过时)。请考虑在此添加独立的摘要,并将链接保留为参考。 – kleopatra

0

关于你的要求做这个“而无需创建一个互联网应用” ......

“互联网应用”就是告诉的Visual Studio你使用它进行什么类型的项目。这不是任何.NET标准所要求的,但如果您使用的是Visual Studio,那么这是您需要采取的步骤。否则VS不知道它是否应该帮助您构建WinForms应用程序,控制台应用程序,WPF等...

您可以使用的其他项目类型是WebSite,但是如果您打算利用.NET比互联网应用程序更好的选择 - 它假设你建立一个将运行.NET代码的网站。


其他人提到使用DotNetOpenAuth来让你的网站运行;我完全支持,但也想提Social Bootstrap API项目。它达到了类似的结果,但是使用ServiceStack.NET。您不希望使用它的可能性很大,但评估替代选项总是很好 - 它们可以帮助向您展示彼此的优点/缺点。