MVC5 ASP.net Identity 2.0用户管理并从localDB部署到IIS服务器8

本文关键字:部署 localDB IIS 服务器 管理 net ASP Identity 用户 MVC5 | 更新日期: 2023-09-27 18:21:44

我是ASP.net MVC5和Identity的新手,在使用WebForms和Membership提供商近一年后。

我刚刚用Identity 2.0创建了一个简单的MVC5应用程序。管理员用户可以登录并上传新文档和添加新链接。我禁用了用户注册(在注册了第一个管理员用户之后),因为我需要手动创建管理员用户。

我将该项目部署到IIS 8服务器上,它运行良好。我使用SQL Management Studio从localDB导出asp.net标识表,并将它们导入到项目使用的同一SQL数据库中,更改了本地使用的指向App_Data中mdf文件的web.config连接字符串,以指向我导入标识表的SQL数据库。不幸的是,这种尝试没有成功,因为使用相同的登录凭据会导致登录失败。

第一个问题:这是将标识表集成到我的项目数据库中的最佳方法吗?如果没有,我还能做什么?

第二个问题:当我使用成员资格提供程序时,我从IIS用户和角色工具管理用户。现在我还不知道有什么系统可以管理用户和角色。如何在不使用注册表的情况下创建新用户?如何管理这些用户和角色?

非常感谢。

MVC5 ASP.net Identity 2.0用户管理并从localDB部署到IIS服务器8

第一个问题的答案

问题是,最初您使用的是代码优先的方法,当您创建注册第一个管理员用户时,这是默认的,它将自动在App_Data文件夹中的localDB中创建所有所需的表。然后EntityFramework,即您的ORM for asp.net Identity框架,将跟踪您的localDB的数据库迁移。

一旦更改了数据库连接,就需要使用代码优先数据库迁移来更新代码和数据库。(如果您没有更改表名)

使用以下链接可以获得有关迁移的一些想法,您可以使用Package Manager控制台使用"更新数据库"命令来执行此操作。

http://msdn.microsoft.com/en-gb/data/jj591621.aspxhttp://www.dotnet-tricks.com/Tutorial/entityframework/R54K181213-Understanding-Entity-Framework-Code-First-Migrations.html

第二个问题

没有任何微软现成的解决方案来管理Identity Framework的用户。但您可以使用Thinktecture IdentityManager nuget包来实现这一点,如以下链接中所述。

http://brockallen.com/2014/04/09/introducing-thinktecture-identitymanager/http://www.hanselman.com/blog/ThinktectureIdentityManagerAsAReplacementForTheASPNETWebSiteAdministrationTool.aspx

如果你还有其他问题,请告诉我。

希望这有帮助,

我已经查看了下一个关于将退出的网站从Sql Membership迁移到Asp.net Identity的链接,我认为这对您很有用。

在这篇文章中指出:

SQL成员身份中使用的加密算法与在新的身份系统中。要重复使用旧密码,我们需要当老用户使用SQL登录时选择性地解密密码在Identity中使用加密算法时的成员身份算法新用户。

所以,这应该是您遇到的主要登录问题。不管文章怎么说,在Asp.net身份中,你可以定义你的自定义密码哈希器,所以可以使用Membership算法登录Asp.net身份,只需创建一个实现IPasswordHasher的自定义密码散列器。然后,在创建实例UserManager时,将新的自定义密码哈希器类分配给PasswordHasher。

UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store);
UserManager.PasswordHasher = new CustomPasswordHasher(); // IPasswordHasher

对于第二个问题,Asp.net Identity中的用户和角色管理是没有秘密的。有一个用户表(AspnetUsers)、一个角色表(AspnetRoles)和一个关联两者的联接表,即AspnetUserRoles。因此,为了从旧数据库迁移用户,您可以使用SQL脚本在这些表中插入用户、角色及其关系。

但是,请查看我建议的逐步教程,我相信这将避免您在迁移过程中可能遇到的其他一些问题。