Rob*_*vey 8 c# security asp.net-mvc role-based
我见过这样的示例代码,看起来非常合理:
[Authorize(Roles = "Admin, User")]
public class SomeController : Controller
Run Code Online (Sandbox Code Playgroud)
但我也看到了几个看起来像这样的例子:
[Authorize(Users = "Charles, Linus")]
public class SomeController : Controller
Run Code Online (Sandbox Code Playgroud)
我为什么要这样做?我无法想象任何我希望建立一个事先知道其用户名的系统的场景.
有一些合法的用途,这里有一个例子:如果您正在构建一个非常简单的网站,只有一个管理员帐户和一个未经身份验证的帐户,您可以这样做
[Authorize(Users = "Admin")]
Run Code Online (Sandbox Code Playgroud)
这省去了您为单个用户构建角色的麻烦。想想 UNIX 风格,其中 root 帐户(uid 0)是特殊的而不是特定的组。
另一个例子是一个简单的一次性应用程序,您正在其中测试某些内容。如果您只想测试身份验证页面或类似的内容,则没有理由担心角色。
还有一个原因:测试。您可以仅为您的身份验证构建单元测试,而无需对基于角色的框架进行单元测试。(请记住,并非每个人都使用默认的成员资格提供程序,并且某些成员资格提供程序非常复杂。)通过为测试用户创建硬编码身份验证,您可以绕过角色框架。
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |