应用程序设置多个值

本文关键字:设置 应用程序 | 更新日期: 2023-09-27 18:00:23

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

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

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

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

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

应用程序设置多个值

在设置文件中使用类似的内容:

<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
}

最简单的解决方案是设置一个分隔符,并在上面使用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 users = appSetting.Split(new[]{';'});
var hasAccess = users.Contains(loggedUser);
if (hasAccess){ 
   ...
}