ASP.Net Identity 2.0:用户是System.Web.Security.RolePrincipa
我正在尝试在现有应用程序中实现Asp.Net Identity 2.0(OWIN),并且在角色方面遇到各种各样的麻烦.我从项目模板创建了一个示例项目(据我所知)我已经将所有内容复制到我的应用程序中.我修改了连接信息,因此身份验证表来自我自己的Sql数据库,而不是默认的本地数据库.
一切似乎都很好.这些表在启动时初始化(创建),我可以创建新用户,为该用户分配角色,并以该用户身份登录.但是当我尝试检查用户是否处于特定角色时,我得到一个异常,表明找到本地数据库时出现问题.好吧那是因为我没有使用本地数据库.那么为什么我的应用程序会在(不存在的)本地数据库中寻找角色? 为了排除我的Sql实例中的怪异,我更改了示例应用程序的连接数据,以便它指向我的数据库并运行它.我可以使用我在应用程序中创建的用户登录,甚至可以成功地轮询用户以查询相关角色.我通过直接检查表确认了这一点,并验证了用户,角色和用户角色关联都在那里. 这是我注意到的.当我运行示例应用程序时,用户是System.Security.Claims.ClaimsPrincipal的实例.但是当我运行我的应用程序时,用户是System.Web.Security.RolePrincipal的一个实例. 那么,我错过了什么?为什么我的应用程序返回RolePrincipal而不是ClaimsPrincipal?我在哪里可以找到线索? 我正在把头发拉出来,我没有多少离开!任何帮助将不胜感激. 解决方法
发生的事情是您的旧应用程序仍然与旧的会员代码挂钩.一些清单项目应该带你回来……
确保删除FormsAuthenticationModule(因为MVC5不再使用它) <modules> <remove name="FormsAuthenticationModule" /> </modules> 确保关闭SimpleMembership(或者只是删除它) <add key="enableSimpleMembership" value="false"/> 最重要的部分是删除对WebMatrix的引用(不再在MVC 5中使用). WebMatrix将自动注册预先应用程序启动方法,这些方法将“尝试”为您的项目提供成员资格服务. See here for details (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Mono WebForms:设置启动调试时运行的默认页面
- asp.net – 使用NuGet发布可执行文件和网站
- asp.net-mvc – Firefox在Ajax请求重定向期间不保留自定义标
- asp.net-mvc – 配置IIS 7以通过虚拟路径提供程序处理静态文
- asp.net – 在测试期间如何使电子邮件到本地文件夹?
- asp.net-mvc – 实体框架核心可空外键
- asp.net – 如何忽略Model属性的验证?
- 学习ASP.NET MVC从1或2或3开始
- asp.net-mvc – 如何从ActionExecutingContext获取MethodIn
- asp.net – SignalR/signalr/hubs 404未找到
- asp.net – 单元测试和Log4net
- asp.net – 插入后在实体框架中获取记录ID
- ASP.NET / IIS:404适用于所有文件类型
- asp.net-web-api – APIController“已执行”方法
- asp.net-mvc – 使用Automapper映射嵌套类
- asp.net-mvc – ASP.NET MVC – AntiForgeryToke
- asp.net – 如何在单击“赞”按钮时在新选项卡中
- ASP.net MVC ASP.net Identity Seeding角色和用户
- asp.net – System.web.ui.page的替代品
- asp.net-mvc – MVC3分页,每页项目数