首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ASP.5/ MVC-6 / Identity 3为自定义Asp.Net身份存储提供程序注册中间件

如何使用ASP.5/ MVC-6 / Identity 3为自定义Asp.Net身份存储提供程序注册中间件
EN

Stack Overflow用户
提问于 2015-06-24 08:44:47
回答 1查看 898关注 0票数 2

我正在尝试升级一个Asp.Net标识2“自定义存储提供程序”,以便在Visual 2015中使用标识3 beta 4,并使用默认的MVC6模板.

我很难学习如何使用Asp.Net中间件注册ASP5标识3自定义存储提供程序。

目前我已经做了以下工作,但不确定它是否正确:

代码语言:javascript
运行
复制
services.AddIdentity()
 .AddRoleStore>()
 .AddUserStore>()

 .AddDefaultTokenProviders();

我不知道如何注册数据库上下文?

在我的项目中称为MySQLDatabase.cs

我找不到任何文件。

注册Identity.EntityFramework中间件似乎与自定义存储提供程序不同。

我在运行默认MVC6模板并单击“寄存器”按钮时收到以下错误:

“'Bondii.Identity.MySQL.UserStore`1Bondii.Identity.MySQL.IdentityUser'.”:在尝试激活InvalidOperationException时无法解析'Bondii.Identity.MySQL.MySQLDatabase‘类型的服务

我的代码,包括完整的项目:

要查看我的代码的GitHub存储库是:https://github.com/simonpbond/bondii.identity.mysql

原来的‘自定义存储提供者教程基于标识2-我试图升级到标识3:http://www.asp.net/identity/overview/extensibility/implementing-a-custom-mysql-aspnet-identity-storage-provider

原始示例代码:https://aspnet.codeplex.com/SourceControl/latest#Samples/Identity/AspNet.Identity.MySQL/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-24 10:09:30

在您的startup.css中,您需要如下所示:

代码语言:javascript
运行
复制
 services.AddTransient(_ => new MySQLDatabase());

在此之前:

代码语言:javascript
运行
复制
 services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddRoleStore<MySQL.RoleStore<IdentityRole>>()
            .AddUserStore<MySQL.UserStore<IdentityUser>>()

            .AddDefaultTokenProviders();

我相信,这将为每个请求提供一个数据库连接,并将由DI传递给Stores的构造函数。

这可能不是最好的方法,最好是将某种类型的工厂作为单例传递,但这应该按照设置它的方式工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31021835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档