首页 > 解决方案 > 如何在 Razor 中使用 System.DirectoryServices.AccountManagement?

问题描述

System.DirectoryServices.AccountManagement从 NuGet 安装,我可以在我的控制器中使用它。我正在尝试@UserPrincipal.Current.EmailAddress在 Razor 视图中使用。我将命名空间添加到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”或其依赖项之一。该系统找不到指定的文件。

我做错了什么,或者我还需要做什么?

标签: asp.netrazordirectoryservices

解决方案


仍然不知道为什么我不能直接引用System.DirectoryServices.AccountManagement. 但是间接使用它们可以按预期工作:

public static class UserHelper
{
    public static string GetEmail()
    {
        return UserPrincipal.Current.EmailAddress;
    }
}

我恢复了我之前的更改Views/Web.config并添加了这个类所在的命名空间。现在我可以@UserHelper.GetEmail()在 Razor 中使用了。


推荐阅读