应用设置多个值

App Settings multiple values

如果用户有权访问该工具,我必须检查代码,我使用这一行来执行此操作:

 var appSetting = ConfigurationManager.AppSettings[APPSETTINGS.SUPPORTUSERS].ToUpper();
 if ((loggedUser.Login.ToUpper() != appSetting))

问题出在 web.config 文件中 我有这个:

<add key="SupportUsers" value="sis8ca"/>

我试图在这个字符串中放入多个值,比如 "sis8ca , dts8ca , lgu8ca",如果这个人有访问权限,她可以使用它,但我不能像这样传递多个值,还有其他方法吗?

最简单的解决方案是设置一个分隔符,然后在其上使用 string.Split

<add key="SupportUsers" value="sis8ca;dts8ca;lgu8ca"/>

var supportedUsers = ConfigurationManager.AppSettings["SupportUsers"]
                                         .Split(';')
                                         .ToList();

if (values.Contains(loggedUser.Login))
{
   // Do stuff.
}

是的,您可以通过 comma(,) 分隔符传递多个值,然后在调用该键值时使用 split

例如

string val = ConfigurationManager.AppSettings[APPSETTINGS.SUPPORTUSERS].ToUpper();
string[] words = val.Split(',');

您将获得该列表 words

在你的设置文件中使用类似这样的东西:

<add key="SupportUsers" value="sis8ca,dts8ca,lgu8ca"/>

然后在后面的代码中执行以下操作:

var appSetting = ConfigurationManager.AppSettings[APPSETTINGS.SUPPORTUSERS].ToUpper();

string[] supportUsers = appSetting.Split(',');
if (supportUsers.Contains(loggedUser.Login.ToUpper()))
{
    // The rest of your code
}

使用:

<add key="SupportUsers" value="sis8ca;dts8ca;lgu8ca"/> 

以及检查它的逻辑:

var users = appSetting.Split(new[]{';'});
var hasAccess = users.Contains(loggedUser);

if (hasAccess){ 
   ...
}