CodeManager中的字符串与来自ConfigurationManager.AppSettings的字符串在IsInRole中的行为不同

时间:2017-04-06 15:37:04

标签: c# asp.net-mvc

我的web.config中有一个appSetting值,它包含一个Active Directory组名。即" Mydomain \ MyAdmin_Group"

我的代码检查用户是否在指定的组中但返回false。

User.IsInRole(ConfigurationManager.AppSettings["AdminGroup"].ToString())

如果我使用以下代码,则返回true。

User.IsInRole("MyDomain\\MyAdmin_Group")

我在Web.Config中的appSetting是:

 <add key="AdminGroup" value="MyDomain\\MyAdmin_Group"/>

为什么&#34;硬编码&#34;调用工作,但使用ConfigurationManager的版本不起作用?

1 个答案:

答案 0 :(得分:2)

您不需要配置文件中的双反斜杠。只需使用一个。双反斜杠仅由c#用于转义反斜杠字符,这在字符串文字中有特殊用途。实际上,如果你是用VB.NET编写的,例如,字符串文字可以使用单个反斜杠,因为它不是VB.NET中的转义字符。