2013-10-29 55 views
3

我正在编写一个ASP.Net WebApi应用程序,我想使用自定义登录(如ASP.NET Membership)和社交登录(Google,Facebook, Twitter,LinkedIn和希望更多)。用户应该能够选择其中的任何一个。保护ASP.NET WebAPI - 自定义登录+社交登录

我的客户端是纯HTML/JS SPA应用程序,为此我需要实现OAuth的Implict授权流程。

我看到的选项,现在是

  1. 使用Thinktecture的Identity Server和授权服务器。

  2. 使用DotNetOpenAuth库。

任何人都可以指向正确的方向吗?上述哪一个选项可以为我工作?

感谢

回答

3

为什么不遵循MVC 5 SPA模板千篇一律,这已经做了你想做什么:

  1. 它采用ASP.NET身份API资源所有者密码登录流程
  2. 支持社会登录(谷歌,Facebook,Twitter的,微软账户)
  3. 它的客户端使用基因敲除和纯HTML/JS
  4. 它采用隐含补助流CONV ERT社会登录到应用程序的访问令牌

模板使用OWIN安全中间件,它可以支持:

  1. cookie认证
  2. 承载令牌身份验证
  3. 社会登录身份验证
  4. 的OAuth 2.0授权服务器流程和扩展授权,您可以自行定制

您可能需要my blog才能更好地理解SPA模板中的整个安全故事。

+0

优秀..快速的问题,但我可以轻松地添加更多的OpenID提供商,如说LinkedIn,雅虎等?我没有阅读整篇文章。如果这已在您的博客和博客中的链接中解决,请道歉。 – Koder

+1

您可以像Google认证中间件那样实现您自己的OpenID提供程序:http://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin.Security.Google/GoogleAuthenticationHandler.cs。但是,openid提供程序没有基类。这意味着你需要从头开始实施它。 –