【问题标题】:this.User.Identity.Name from web.config or database?this.User.Identity.Name 来自 web.config 还是数据库?
【发布时间】:2013-09-25 18:51:55
【问题描述】:

目前我正在检查:

@if(this.User.Identity.Name=="DOMAIN\\USERID"){

这很好用,但我希望有多个用户 (2-3) 来检查。我也不想硬编码。有没有办法在 web.config 或数据库中执行此操作?

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    您可以在配置中添加一个列表...User1,User2 等,然后针对此列表使用linq.Any()

        var users = "user1,user2,user3".Split(','); //list will come from your config
        bool result = users.Any(u => u == this.User.Identity.Name);
    

    另外,由于您使用的是 MVC,如果您想将 authorization 用于 controllers 等,您可以使用 [Authorize] 属性。也请参阅此 SO 链接 Authorize attribute in ASP.NET MVC

    【讨论】:

      【解决方案2】:

      也许改用角色然后将相关用户添加到该角色?这将使将来更容易扩展,而且您不必对用户列表进行硬编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        相关资源
        最近更新 更多