如何将 ASP.NET Identity 实现到一个空的 MVC 项目

Posted

技术标签:

【中文标题】如何将 ASP.NET Identity 实现到一个空的 MVC 项目【英文标题】:how to implement ASP.NET Identity to an empty MVC project 【发布时间】:2014-04-11 23:22:34 【问题描述】:

我创建了一个新的空MVC 项目,我想向它添加身份。 现在我不知道如何做到这一点以及如何创建数据库、表和类。 我进行了搜索,但没有找到任何有用的解决方案来解决我的问题,我找到了一篇文章,用于将 ASP.NET Identity 添加到现有的空 ASP.NET Web 中,但对于 ASP.Net MVC 项目,我没有找到。 用于登录 报名表 用于将用户添加到角色 删除用户 如何在我自己的数据库中创建表 如何管理用户

【问题讨论】:

【参考方案1】:

您可以从 NuGet 库集成 ASP.NET 标识。您可以使用 NuGet 包管理器控制台安装这些包,如下所示:

安装包 Microsoft.AspNet.Identity.EntityFramework – 版本 2.2.1

安装包 Microsoft.AspNet.Identity.Core -Version 2.2.1

安装包 Microsoft.AspNet.Identity.OWIN -Version 2.2.1

除此之外,您只需使用默认模板创建一个单独的 MVC 项目,并在其中拥有用于实现 ASP.NET 标识的类和方法作为参考,因此也只需在新项目中使用这些类。

如果您将现有数据库与 Entity Framework 与 Database first 方法一起使用,则为 ASP.NET 标识创建单独的连接字符串和数据上下文。因为带有 Edmx 的实体框架使用提供程序 System.Data.EntityClient 而 ASP.NET Identity 使用提供程序System.Data.SqlClient.

【讨论】:

【参考方案2】:

通过以下方式打开 nuget 包管理器:

Tools > Nuget Package Manager > Package Manager Console

在一个新项目中[1]。从那里,您可以在PM> 旁边输入

Install-Package Microsoft.AspNet.Identity.Samples -Pre 

它将为您安装 Identity 示例。它会询问您是否允许它通过按“A”来更改您的webconfig,您接受所有更改。

从那时起,您将安装示例身份项目!

注意:它将更改默认命名空间,因此通过“查找和替换”,您可以快速将匹配项更改为您的项目名称(注意,您可能需要进入我的文档文件夹中的 global.aspx 页面- 在记事本中打开它并在那里更改命名空间!)


[1]:如果你在开发之初不这样做,你会发现下面的文件会被覆盖(所以请确保你有办法将你的原件与新):

Overwrite existing file 'Views\Web.config'.
Overwrite existing file 'Views\Shared\Error.cshtml'.
Overwrite existing file 'Views\Shared\_Layout.cshtml'.
Overwrite existing file 'Views\Home\Index.cshtml'.
Overwrite existing file 'Views\_ViewStart.cshtml'.
Overwrite existing file 'Global.asax.cs'.
Overwrite existing file 'Global.asax'.
Overwrite existing file 'Controllers\HomeController.cs'.
Overwrite existing file 'Content\Site.css'.
Overwrite existing file 'App_Start\RouteConfig.cs'.
Overwrite existing file 'App_Start\FilterConfig.cs'.
Overwrite existing file 'App_Start\BundleConfig.cs'.

【讨论】:

我试过这个,直到我选择它才找到包:包源:窗口顶部的下拉列表中的全部。 我这样做了,身份工作正常。现在如何使用身份样本将 localdb 更改为 mysql【参考方案3】:

我一直在寻找同样的东西,以下博客文章帮助了我:

http://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-1

http://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-2

【讨论】:

注意:新开发者小心;第二个链接在 Identity 2 发布时已过期...http://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-2 省去你的头疼 如何避免头痛?抱歉,您的建议不清楚?【参考方案4】:

以下文章向您介绍了将 ASP.NET 标识添加到应用程序的基础知识。 http://www.asp.net/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project

【讨论】:

Raquel Almeida 的论文非常适合 webform 应用程序,但是在这种情况下,我们需要教程来学习在 MVC 应用程序中实现 Identity。我在channel9上观看了您的标题为“ASP.NET Identity”的视频,该视频非常好,但在这种情况下不适合新手,在这种情况下我是新手,我需要逐步学习,例如以下链接:benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-1benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-2 最后感谢您和您的团队,你们做得很好!

以上是关于如何将 ASP.NET Identity 实现到一个空的 MVC 项目的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Identity教程ASP.NET Identity入门

ASP.NET Identity系列教程运用ASP.NET Identity

ASP.NET Identity系列教程Identity高级技术

使用 ASP.NET Identity 时如何更改表名?

如何使用 ASP.NET Core Identity 将登录/注册系统添加到现有数据库?

如何有条件地将多个模型映射到 ASP.NET Core Identity 中的一个表(AspNetUsers)?