Как использовать System.DirectoryServices.AccountManagement в Razor? - PullRequest
1 голос
/ 30 апреля 2019

Я установил 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 = нейтральный, PublicKeyToken = b77a5c561934e089' или одну из ее зависимостей. Система не может найти указанный файл.

Что я сделал не так или что мне еще нужно сделать?

1 Ответ

0 голосов
/ 30 апреля 2019

До сих пор не знаю, почему я не могу напрямую ссылаться на классы в System.DirectoryServices.AccountManagement. Но косвенное их использование работает, как и ожидалось:

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

Я вернул свои предыдущие изменения в Views/Web.config и добавил пространство имен, в котором находится этот класс. Теперь я могу использовать @UserHelper.GetEmail() в Razor.

...