在现有应用程序中集成G​​oogle身份验证

时间:2014-07-11 11:44:49

标签: c# asp.net sql-server authentication google-oauth

我们有一个应用程序设计3年前在ASP.Net& SQL Server 2008。

我们在ApplicationUser,Role的帮助下为应用程序设计了自己的登录数据库设计和表单身份验证,然后使用UserId获取相应的用户记录,历史记录等其他事务表。

到目前为止,新用户注册以及带来和管理现有用户记录都没有问题。

Now our client wants to integrate, Google Account Login for the new customer and even the existing customer can sign in with the Google account.

我们想知道它是如何可能的。如果您使用Google帐户登录,我们如何管理UserId映射和其他表格。

是否可以将Google帐户登录与现有的应用程序集成,并使用自己的登录实现进行设计?

如果是,那么实施此项目需要遵循/考虑的事项是什么?

5 个答案:

答案 0 :(得分:0)

我会使用Windows Identity Foundation。它使用基于声明的身份验证,因此用户需要访问您的站点是一个带有声明的安全令牌。您可以设置单独的安全令牌服务,该服务根据您自己的数据库对用户进行身份验证,用户还可以通过Google或您配置应用程序的任何其他方登录来检索令牌。

答案 1 :(得分:0)

另一个建议可能是使用nuget包SimpleAuthentication。**

开箱即用,它有一个MVC控制器,这意味着你需要做的就是实现代码,以检查用户是否存在于你的系统中等等(例如,当你从谷歌回到你的网站时)。

如果您使用的是网络表单(appologies),那么您需要通过创建自己的表单回调然后处理Google的回复来完成更多工作。

**披露:我是其中两个主要贡献者之一。

答案 2 :(得分:0)

年龄前我创建了小型ASP。 NET MVC,如果我没记错的话,你可以找到描述herehere的解决方案。

答案 3 :(得分:0)

您可以在此Google+文档中找到有关将Google+身份验证添加到现有Facebook实施的答案:

Adding Google+ to your Facebook Integration: Storing authorization

它讨论了从单个User表迁移到UserIdentity表。

您可以通过两种方式实现这样的目标:

  1. User表格中保留用户名/密码/电子邮件字段,并仅在必要时在Identity表格中附加Google身份验证提供程序。
  2. Identity表格中包含用户名和密码字段,如果provider"local",则会对其进行检查。

答案 4 :(得分:0)

您可以使用DotNetOpenAuth

这是一个“库,通过将ASP.NET控件放到页面上,为您的站点访问者添加对其OpenID登录的支持。这很简单。一个AJAX风格的OpenID Selector控件也包含在一个光滑的,简化用户体验。“

This post说明如何使用Google帐户。