我正在尝试升级一个Asp.Net标识2“自定义存储提供程序”,以便在Visual 2015中使用标识3 beta 4,并使用默认的MVC6模板.
我很难学习如何使用Asp.Net中间件注册ASP5标识3自定义存储提供程序。
目前我已经做了以下工作,但不确定它是否正确:
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/
发布于 2015-06-24 10:09:30
在您的startup.css中,您需要如下所示:
services.AddTransient(_ => new MySQLDatabase());
在此之前:
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddRoleStore<MySQL.RoleStore<IdentityRole>>()
.AddUserStore<MySQL.UserStore<IdentityUser>>()
.AddDefaultTokenProviders();
我相信,这将为每个请求提供一个数据库连接,并将由DI传递给Stores的构造函数。
这可能不是最好的方法,最好是将某种类型的工厂作为单例传递,但这应该按照设置它的方式工作。
https://stackoverflow.com/questions/31021835
复制相似问题