为什么[Authorize(Roles =“ Admin”)]在带有ASP.NET Identity的MVC 5 RTM中无法使用?

杰里米·库克(Jeremy Cook)

[Authorize(Roles = "Admin")]使用ASP.NET Identity的MVC 5 RTM是否可以直接使用

我没有运气。请注意,[Authorize]并且[Authorize(Users = "AdminUser")]工作正常,并且正如我期望的那样填充了AspNetUserRoles和AspNetRoles表,并在AdminUser用户和Admin角色之间建立了关系。此问题似乎特定于角色。

杰里米·库克(Jeremy Cook)

答案是UserManager的DbContext必须启用延迟加载,以便用户角色以通常的预期方式出现在应用程序中。事实证明,并非我的所有代码都是“开箱即用”的。我曾经如此微妙地自定义了DbContext。希望在将来,Microsoft将通过确保该集合中加载类似之类的东西来回避此集成错误userDbContext.Users.Include(o => o.Roles).SingleOrDefault(...)

  • 做: ApplicationDbContext.Configuration.LazyLoadingEnabled = true;
  • 不要: ApplicationDbContext.Configuration.LazyLoadingEnabled = false;

请注意,如果ApplicationDbContext.Configuration.LazyLoadingEnabled您的代码中未设置,则默认为true因此,忽略该行与将其设置为一样好true

等等。

这是我对禁用延迟加载时的情况的猜测,当UserManager或UserStore访问它时,/对象Roles属性为null或为空,因为该集合未手动加载。然后,该代码继续进行,就像实际上从未从未加载过集合一样,没有将角色分配给用户一样。IdentityUserApplicationUser

啊,沉默失败的香气。如果代码看起来不正确,只会使代码产生一些干扰。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ASP.NET MVC 5中填充User.Identity

来自分类Dev

如何使用AspNet.Identity使用Asp.Net MVC5 RTM位登录/认证用户?

来自分类Dev

带有实体框架的ASP .NET MVC 5中的并发

来自分类Dev

获取ASP.NET MVC5 Identity系统中的所有角色名称

来自分类Dev

在ASP.NET中,“ [[Authorize(Roles = ADMIN)]]”中的括号是什么意思?

来自分类Dev

在MVC 5中具有ASP.NET Identity的Autofac无法验证OWIN管道中的安全标记

来自分类Dev

在ASP.NET MVC 5 Identity 2.0中使用角色

来自分类Dev

在ASP.NET MVC 5中使用Identity框架登录弹出窗口

来自分类Dev

Asp.net MVC 5,Identity 2.0无法向用户添加角色

来自分类Dev

ASP.NET MVC 5如何在Identity 2.0中删除用户及其相关数据

来自分类Dev

自定义MVC5 ASP.NET Identity中的cookie值

来自分类Dev

自定义MVC5 ASP.NET Identity中的cookie值

来自分类Dev

在MVC 5中的ASP.NET Identity 3上管理自定义用户属性

来自分类Dev

在 Asp.Net mvc5 Identity 版本 1.0.0 中忘记密码

来自分类Dev

使用Unity的MVC5应用程序内部的ASP.Net Identity 2.1

来自分类Dev

使用ASP.NET Identity 2.0和MVC 5的自定义单点登录

来自分类Dev

为什么无法在ASP.NET MVC5中重载?

来自分类Dev

在MVC5和.Net Identity中使用迁移的最佳方法是什么?

来自分类Dev

在带有区域的ASP.NET MVC 5中使用路由属性

来自分类Dev

ASP.NET MVC 5 Identity & Securing Folders

来自分类Dev

为什么带有IList for Editor的ASP.NET MVC 4无法正确编写索引符号?

来自分类Dev

如何在Visual Studio 2012中使用ASP.NET Identity创建新的MVC 5项目?

来自分类Dev

如何使用MVC5 ASP.NET Identity Framework对SignalR .NET客户端进行身份验证

来自分类Dev

在ASP.NET MVC 5 Server.MapPath()中返回带有双反斜杠的路径

来自分类Dev

具有ASP.Net Identity的ASP.NET MVC5中的自定义验证和角色提供程序

来自分类Dev

为什么ASP.NET Core MVC 3.1项目不会让我使用Identity使用注册用户登录

来自分类Dev

带有POST形式的ASP .NET MVC 5 + Bootstrap模态

来自分类Dev

为什么我的ASP .NET MVC 5 Razor View无法识别我的Javascript功能?

来自分类Dev

登录过程中User.Identity.GetUserId()的ASP.NET MVC5身份问题

Related 相关文章

  1. 1

    在ASP.NET MVC 5中填充User.Identity

  2. 2

    如何使用AspNet.Identity使用Asp.Net MVC5 RTM位登录/认证用户?

  3. 3

    带有实体框架的ASP .NET MVC 5中的并发

  4. 4

    获取ASP.NET MVC5 Identity系统中的所有角色名称

  5. 5

    在ASP.NET中,“ [[Authorize(Roles = ADMIN)]]”中的括号是什么意思?

  6. 6

    在MVC 5中具有ASP.NET Identity的Autofac无法验证OWIN管道中的安全标记

  7. 7

    在ASP.NET MVC 5 Identity 2.0中使用角色

  8. 8

    在ASP.NET MVC 5中使用Identity框架登录弹出窗口

  9. 9

    Asp.net MVC 5,Identity 2.0无法向用户添加角色

  10. 10

    ASP.NET MVC 5如何在Identity 2.0中删除用户及其相关数据

  11. 11

    自定义MVC5 ASP.NET Identity中的cookie值

  12. 12

    自定义MVC5 ASP.NET Identity中的cookie值

  13. 13

    在MVC 5中的ASP.NET Identity 3上管理自定义用户属性

  14. 14

    在 Asp.Net mvc5 Identity 版本 1.0.0 中忘记密码

  15. 15

    使用Unity的MVC5应用程序内部的ASP.Net Identity 2.1

  16. 16

    使用ASP.NET Identity 2.0和MVC 5的自定义单点登录

  17. 17

    为什么无法在ASP.NET MVC5中重载?

  18. 18

    在MVC5和.Net Identity中使用迁移的最佳方法是什么?

  19. 19

    在带有区域的ASP.NET MVC 5中使用路由属性

  20. 20

    ASP.NET MVC 5 Identity & Securing Folders

  21. 21

    为什么带有IList for Editor的ASP.NET MVC 4无法正确编写索引符号?

  22. 22

    如何在Visual Studio 2012中使用ASP.NET Identity创建新的MVC 5项目?

  23. 23

    如何使用MVC5 ASP.NET Identity Framework对SignalR .NET客户端进行身份验证

  24. 24

    在ASP.NET MVC 5 Server.MapPath()中返回带有双反斜杠的路径

  25. 25

    具有ASP.Net Identity的ASP.NET MVC5中的自定义验证和角色提供程序

  26. 26

    为什么ASP.NET Core MVC 3.1项目不会让我使用Identity使用注册用户登录

  27. 27

    带有POST形式的ASP .NET MVC 5 + Bootstrap模态

  28. 28

    为什么我的ASP .NET MVC 5 Razor View无法识别我的Javascript功能?

  29. 29

    登录过程中User.Identity.GetUserId()的ASP.NET MVC5身份问题

热门标签

归档