我从NuGet安装了System.DirectoryServices.AccountManagement
,我可以在我的控制器中使用它。我正试图在Razor视图中使用@UserPrincipal.Current.EmailAddress
。我将命名空间添加到Views/Web.config
:
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.DirectoryServices.AccountManagement"/>
</namespaces>
</pages>
</system.web.webPages.razor>
这给我留下了一个错误,所以我还添加了程序集引用:
<system.web>
<compilation>
<assemblies>
<add assembly="System.DirectoryServices.AccountManagement, Version=4.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
</system.web>
我从sn -T
获得了那个公钥令牌。但我仍然收到这个错误:
无法加载文件或程序集'System.DirectoryServices.AccountManagement,Version = 4.5.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其依赖项之一。该系统找不到指定的文件。
我做错了什么,或者我还需要做什么?
仍然不知道为什么我不能直接引用System.DirectoryServices.AccountManagement
中的类。但是间接使用它们可以按预期工作:
public static class UserHelper
{
public static string GetEmail()
{
return UserPrincipal.Current.EmailAddress;
}
}
我将之前的更改恢复为Views/Web.config
并添加了此类所在的命名空间。现在我可以在Razor中使用@UserHelper.GetEmail()
。