来自web.config或数据库的this.User.Identity.Name?

时间:2013-09-25 18:51:56

标签: asp.net-mvc razor

目前我正在检查:

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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