代码中的字符串与 ConfigurationManager.AppSettings 中的字符串在 IsInRole 中的



我的web.config中有一个appSet值,其中包含Active Directory组名称,即"Mydomain\MyAdmin_Group">

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

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

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

User.IsInRole("MyDomain\MyAdmin_Group")

我的 Web.Config 中的应用程序设置是:

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

为什么"硬编码"调用有效,但使用 ConfigurationManager 的版本不起作用?

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

最新更新