【问题标题】:What does [Authorize(Users = "*")] mean in asp.net mvc[Authorize(Users = "*")] 在 asp.net mvc 中是什么意思
【发布时间】:2011-11-10 16:23:24
【问题描述】:

[Authorize(Users = "*")] 在 asp.net mvc 中是什么意思?还请解释[Authorize(Users = "")][Authorize(Users = "?")].

谢谢。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    要授权所有用户,只需省略使用[Authorize] 属性即可。要授权经过身份验证的用户,请使用 [Authorize] 属性。要授权特定角色或用户,您将拥有[Authorize (Users = "someuser")][Authorize (Roles = "somerole")]

    【讨论】:

    • 我尝试了 [Authorize(Users = "*")] 的操作。它甚至不允许经过身份验证的用户。当我只添加 [Authorize] 时,它允许经过身份验证的用户。
    • [Authorize] 属性单独用于授权经过身份验证的用户,这是正确的。
    • 开头 (*) 必须仅用于配置授权规则,它可能在属性中未被识别为有效值。
    • 要授权所有用户,只需省略使用[Authorize] 属性。要授权经过身份验证的用户,请使用 [Authorize] 属性。要授权特定角色或用户,即您将拥有 [Authorize (Users = "someuser")][Authorize (Roles = "somerole")]
    • 谢谢各位。我掉进了和OP一样的坑
    【解决方案2】:

    看着documentation for the attribute,您似乎不能那样使用它。默认情况下,AuthorizeAttribute 只允许访问经过身份验证和授权的用户,因此传递 *(全部)或 ?(访客)没有意义。
    Users 属性用于进一步限制可以访问 Action 方法的经过身份验证的用户列表,以及 Roles 属性,该属性还可用于进一步过滤任何经过身份验证的访问。

    【讨论】:

    • 一个奇怪的事情是,当我使用 [Authorize(Users = "")] 时,它只允许经过身份验证的用户。
    【解决方案3】:

    我认为第二个帖子是正确的,在 [Authorize(Users = " * ")] 中," * " 部分没有任何意义(在 web.config 中确实如此,但那是完全不同的东西)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 2017-06-11
      • 2018-03-05
      相关资源
      最近更新 更多