我有一个使用ASP.NET身份(Invidual用户帐户)的MVC 5项目 . 作为数据库ORM,我正在使用实体框架6,而IoC由Ninject负责 .
解决方案结构如下
-
MVC项目 - 拥有我的控制器,视图和ninject设置 . 对于Ninject,我从nuget获得了Ninject.MVC3 .
-
数据项目---有我的DataContext(IdentityDbContext)和我的ApplicationUser(IdentityUser) . 我的数据服务和所有存储库
-
核心项目 - 拥有我的所有实体和接口
[Authorize]
属性工作正常,我必须登录才能访问带注释的操作,但是当我设置 [Authorize(Roles = "Admin")]
时,我得到了
找不到存储过程'dbo.aspnet_CheckSchemaVersion' .
我创建了我的CustomAuthorize attibute,它基本上是Authorize的副本,并注意到 protected virtual bool AuthorizeCore(HttpContextBase httpContext)
User.ProviderName中的httpcontext是"AspNetSqlRoleProvider" .
所以我在我的web.config中添加了Rolemanages clear . 这导致了
配置错误说明:处理为此请求提供服务所需的配置文件时发生错误 . 请查看下面的具体错误详细信息并相应地修改配置文件 . 分析器错误消息:找不到默认角色提供程序 . 源错误:第53行: - >第54行:第55行:第56行:第57行:源文件:... myproject \ WebUI \ web.config行:55
那么这笔交易是什么?如何设置默认角色提供程序以使用ASP.NET标识?
1 回答
所以在我发布问题之后我就找到了答案 . 我不得不补充一下
这样做了 . 但仍有一个问题是为什么?