应用程序设置多个值

时间:2015-06-29 12:08:30

标签: c# asp.net web-config

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

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

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

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

我正在尝试在此字符串中添加多个值,例如“sis8ca,dts8ca,lgu8ca”,如果此人有访问权限,她可以使用它,但我无法传递多个这样的值,还有其他方式吗?< / p>

4 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:2)

在您的设置文件中使用以下内容:

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

答案 2 :(得分:1)

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

例如。

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

您将获得words

的列表

答案 3 :(得分:1)

使用:

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

检查它的逻辑:

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

if (hasAccess){ 
   ...
}