Entity framework 在MVC 5项目上使用ASP.NET标识,但httpcontext User.ProviderName为;AspNetSqlRoleProvider“;

Entity framework 在MVC 5项目上使用ASP.NET标识,但httpcontext User.ProviderName为;AspNetSqlRoleProvider“;,entity-framework,ninject,asp.net-mvc-5,asp.net-identity,Entity Framework,Ninject,Asp.net Mvc 5,Asp.net Identity,我有一个使用ASP.NET身份(双用户帐户)的MVC5项目。作为数据库ORM,我使用实体框架6,IoC由Ninject负责 解决方案结构如下 MVC项目 --有我的控制器、视图和ninject设置。对于Ninject,我从nuget获得了Ninject.MVC3 数据项目 ---有我的DataContext(IdentityDbContext)和我的ApplicationUser(IdentityUser)。我的 数据服务和所有存储库 核心项目 --有我所有的实体和接口 [Authorize

我有一个使用ASP.NET身份(双用户帐户)的MVC5项目。作为数据库ORM,我使用实体框架6,IoC由Ninject负责

解决方案结构如下

  • MVC项目 --有我的控制器、视图和ninject设置。对于Ninject,我从nuget获得了Ninject.MVC3
  • 数据项目 ---有我的DataContext(IdentityDbContext)和我的ApplicationUser(IdentityUser)。我的 数据服务和所有存储库
  • 核心项目 --有我所有的实体和接口
[Authorize]
属性工作正常,我必须登录才能访问带注释的操作,但当我设置
[Authorize(Roles=“Admin”)]
时,我得到

找不到存储过程“dbo.aspnet\u CheckSchemaVersion”

我在CustomAuthorize attibute上创建了我的,基本上是Authorize的副本,并注意到
受保护的虚拟bool AuthorizeCore(HttpContextBase httpcontext)
User.ProviderName是“AspNetSqlRoleProvider”

因此,我将Rolemanages clear添加到我的web.config中。这导致了

配置错误说明:配置过程中发生错误 处理服务此请求所需的配置文件。 请查看下面的特定错误详细信息并修改您的 配置文件

分析器错误消息:找不到默认角色提供程序

源错误:

第53行:-->第54行:第55行:第 56:第57行:

源文件: …myproject\WebUI\web.config 电话号码:55


那么这里的交易是什么?如何将默认角色提供程序设置为使用ASP.NET标识?

因此,在发布问题后,我立即找到了答案。我必须补充一点

<system.webServer> <modules> ... <remove name="RoleManager" /> </modules> </system.webServer> ...
成功了。但仍然有一个问题是为什么?

我在通过Nuget升级包时遇到了这个问题。导致它的DLL(Microsoft.AspNet.WebPages.WebData)的行为已更改。从2.0.30506.0升级到3.2.3意味着此配置的处理方式有所不同,结果是我以前使用的应用程序现在将尝试连接到本地SQL Server,而本地SQL Server并不存在。