我首先在Visual Studio 2013中使用代码与Entity Framework 6和MVC 5.1。在不对web.config,模型类或与Roles直接相关的任何内容进行任何更改的情况下,我的应用程序失去了确定用户角色成员资格的能力。事实上,该项目的大部分都是样板MVC。我故意尽量保持简单。没什么好看的。
身份验证正常,并且 System.Web.HttpContext.Current.User.Identity 已正确填充。
输出 string.Join(“,”,Roles.GetRolesForUser())表示用户虽然已登录但不属于任何角色。
仔细检查AspNetRoles,AspNetUsers和AspNetUserRoles,表明用户与许多不同的角色相关联。
不超过24小时前,所有角色特定功能都正常运行,所以我至少知道在某些时候所有内容都已正确配置。
没有发布我的整个项目,不可能列出所有因素,但我希望其他人可能有类似的经验,并提供可能的解决方案。
答案 0 :(得分:0)
看起来Code First角色提供程序需要启用延迟加载。我早先禁用了延迟加载。 base.Configuration.LazyLoadingEnabled = false; 。一旦启用此功能,角色提供程序就开始工作。