具有ASP.NET成员身份的Windows Azure Access Control

时间:2011-09-26 14:32:35

标签: asp.net asp.net-mvc-3 azure

我有一个使用vanilla ASP.Net Membership进行身份验证的现有生产应用程序。

但是,我想提供其他身份验证方法以及当前的ASP.net会员系统,例如Facebook。

Windows Azure Access Control Service使这非常简单直接。提供,即您从头开始创建新的Web应用程序。

所以,在这种情况下,我该如何

  1. 将Access Control Service身份验证集成到我的应用中,而不会影响当前的登录系统及其用户?
  2. 迁移用户或链接登录? (不确定这是否可能)
  3. 全部谢谢

    罗伯特

3 个答案:

答案 0 :(得分:2)

您需要根据您的会员资格数据库创建自定义身份提供商。请参阅有关可以集成到访问控制的自定义WS联合身份提供程序的文章:http://msdn.microsoft.com/en-us/library/windowsazure/gg185933.aspx

另请参阅有关在会员数据库上编写的文章:http://blogs.msdn.com/b/vbertocci/archive/2009/04/23/enhance-your-asp-net-membership-based-website-by-adding-identity-provider-capabilities.aspx

答案 1 :(得分:1)

基于您的ASP.NET成员资格数据库创建身份提供程序(IP)的方法,Paul Tyng建议该数据库有效。

但是,这意味着如果您只是创建一个IP,您将允许登录所有授权其他IP(例如Google或Facebook)的人。我猜这不是你想要的 - 你仍然希望人们首先注册(明显地使用用户名密码或外部身份)。如果是这种情况,那么您的任务如下:

  1. 为用户的外部身份添加数据存储,该数据存储与您现有的用户表相关。
  2. 修改应用程序中的ACS登录处理,以检查从ACS返回的身份是否确实存在于您的成员数据库中。
  3. 如果您在数据库中找到了返回的标识,请执行成员登录(而不是联合登录)。
  4. 在注册过程中添加外部身份绑定,以便实际填充您的身份表。
  5. (可选)重新使用#4机制的大部分内容,以便为现有用户帐户附加外部身份(即我已经拥有正常的会员资格,现在想要添加登录Google的功能同样,例如)。
  6. 没有一个单一的教程/演练来实现这一点(或者我没有找到),所以我不得不从各种来源中提取位以使其工作。如果我正确理解您的要求,请在评论中告诉我,我会添加一个如何设置它的指南。干杯!

答案 2 :(得分:0)