Authentication 考虑放弃编写自定义成员资格和角色提供程序的想法。意见?

Authentication 考虑放弃编写自定义成员资格和角色提供程序的想法。意见?,authentication,cookies,authorization,membership,roles,Authentication,Cookies,Authorization,Membership,Roles,我在ASP.NET中构建了一个web应用程序,它具有以下安全要求: 必须能够与主身份验证方案集成,该方案将唯一密钥传回应用程序,以指示用户已通过第三方站点登录 必须能够使用现有的用户/角色表 如果用户不是第三方站点的成员,则可以使用表单身份验证并允许用户通过单独的登录页面登录 我尝试过自定义SQL角色和成员资格提供程序,但遇到了一些问题,特别是有一个强类型的MembershipUser对象具有uniqueIdentifier(providerKey),并且没有空间容纳我自己的自定义密钥集(将有两

我在ASP.NET中构建了一个web应用程序,它具有以下安全要求:

  • 必须能够与主身份验证方案集成,该方案将唯一密钥传回应用程序,以指示用户已通过第三方站点登录
  • 必须能够使用现有的用户/角色表
  • 如果用户不是第三方站点的成员,则可以使用表单身份验证并允许用户通过单独的登录页面登录
  • 我尝试过自定义SQL角色和成员资格提供程序,但遇到了一些问题,特别是有一个强类型的MembershipUser对象具有uniqueIdentifier(providerKey),并且没有空间容纳我自己的自定义密钥集(将有两个)来标识用户


    我是否应该放弃我的自定义成员资格提供程序实现,转而使用cookies/session?我真的很想使用内置功能,但它似乎不可行。

    您可能想做的是在现有功能的基础上构建项目1,请先尝试。返回信息后,用户将自动登录。如果第一个进程失败,请使用内置代码执行标准身份验证


    我曾多次在ASP.NET成员资格提供商的基础上为使用DotNetNuke的客户构建过这种类型的系统,效果非常好。

    从Scott Guthrie的博客中找到它。

    我成功地抛弃了成员资格提供商,根本不使用它。我创建了一个新的IMembershipService接口和一个用于处理web应用程序用户的创建和验证的实现

    我已经创建了自己的用户模型。这允许我在应用程序中有一个灵活的角色模型。我可以自由创建上下文域角色,并将它们与实际用户模型分离

    其实没那么难。记得给你的密码等加盐,并阅读一些安全书籍

    您仍然可以通过这种方法使用FormsAuthentication


    大多数依赖asp.net成员资格提供商的系统在某种程度上都是精神分裂症。您将有2个用户表,例如,在CommunityServer中,您有aspnet_用户和cs_用户,其中cs_用户引用aspnet_用户的成员身份ID,并在其中引入另一个用户ID。它还镜像用户名等。

    如何处理要在登录/表单cookie中持久化的自定义字段?你需要从系统中提取其他数据吗?换句话说,您如何“添加”ASP成员资格提供程序提供给您的内容?我们使用成员资格提供程序中存在的配置文件属性功能来存储额外的数据。因此,您将使用配置文件存储额外的字段?可以从数据库中的现有表加载配置文件吗?在我们的例子中,我们在登录时使用providers方法同步配置文件项。我正在创建您所描述的内容。有什么建议吗?哥查斯?