如何从Forms身份验证迁移到ASP .NET Identity

时间:2016-03-18 07:16:29

标签: asp.net-mvc asp.net-mvc-4 authentication asp.net-web-api asp.net-authorization

我在MVC项目中工作,该项目包含常规MVC控制器和Web API控制器。最初,我使用自定义用户表实现了表单身份验证。但现在我计划使用新的ASP .NET身份,并从基于cookie的表单身份验证更改为基于声明的身份验证和授权。我已经有一个包含自定义字段的表的数据库。所以我需要自定义ASP .NET Identity以使用我的表 任何人都可以指导我如何实现这一目标吗?

修改

在回复FKutsche时,这是我的用户表。我只保留了重要的列。

用户表

用户ID

用户名

密码

UserTypeId

用户类型表

UserTypeId

用户类型

列名是自解释的,所以我没有描述它们。用户表在UserType表的UserTypeId列上具有外键。

1 个答案:

答案 0 :(得分:5)

如果您不打算使用身份表格式,那么进行此类迁移毫无意义。

ASP.NET Identity具有一个出色的现成功能列表,如果没有适当的数据库支持(并且该用户表无法提供这些功能),这些功能就无法存在。

我认为你有不同的选择:

  • 坚持使用用户表并在其上构建自定义oauth提供程序(不是很难,请查看link - 我个人按照本指南构建了许多应用程序的安全层)
  • 使用ASP.NET标识迁移到全新的身份模型,并将此表链接为针对已记录用户生成的IClaimsIdentity的扩展声明(例如,chech this SO答案)。

恕我直言,我个人更喜欢第二种选择:你必须将你的用户ID和pw迁移到新系统,但最好从坚实且经过充分测试的东西开始。通过这种方式,您还可以获得未来的改进,对于完全自定义的系统而言,如果没有大量的编码工作,这可能是不正确的。

希望有所帮助:)