【问题标题】:How to migrate from Forms Authentication to ASP .NET Identity如何从表单身份验证迁移到 ASP .NET 身份
【发布时间】:2016-07-04 20:24:10
【问题描述】:

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

编辑:

在回复 FKutsche 时,这是我拥有的 User 表。我只保留了重要的列。

用户表

用户ID

用户名

密码

用户类型ID

用户类型表

用户类型ID

用户类型

列名是不言自明的,所以我不描述它们。 User 表在 UserType 表的 UserTypeId 列上有外键。

【问题讨论】:

  • 在不知道您的桌子现在是什么样子的情况下,我想没有人可以帮助您。除此之外,将 ASP.NET 标识适应现有用户数据库可能真的很困难
  • 我同意卢卡和他在下面的回答。我正在使用 asp.net mvc 5 项目,但我们希望将其移至 AngularJS 前端,WebApi 2 在不同端口上作为不同项目运行。您可以将一个新的 Web Api 项目添加到您的解决方案中,并获得开箱即用的功能。如果需要,您还可以修改Models\IdentityModel.cs 中的用户配置文件。另请参阅跨域响应标头的 WebApi.cors nuget 包。

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


【解决方案1】:

如果您不打算使用 Identity 表格式,那么进行这种迁移是没有意义的。

ASP.NET Identity 具有出色的开箱即用功能列表,如果没有适当的数据库支持,这些功能根本无法存在(并且该用户表无法提供它们)。

我认为您在这里有不同的选择:

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

恕我直言,我个人更喜欢第二种选择:您必须将用户 ID 和密码迁移到新系统,但最好从可靠且经过良好测试的东西开始。通过这种方式,您还可以访问未来的改进,这对于没有大量编码工作的完全定制系统来说可能是不正确的。

希望对你有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 2017-03-18
    • 2023-03-22
    • 2012-08-04
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多