Можно ли изменить пользователя в исключительной ситуации, не входя в систему? - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь добавить ведение журнала Elmah в веб-сервис.Пользователь проходит проверку подлинности, чтобы подтвердить, что он является действительным пользователем, но затем он никогда не вошел в систему. Из-за этого, когда выдается ошибка и записывается ELMAH, имя пользователя всегда пусто.Было бы полезно иметь возможность заполнять это значение программно, но я не могу найти какой-либо способ сделать это.

Мой код довольно прост:

public static void Add(Exception ex)
{
    try
    {
        ErrorSignal.FromCurrentContext().Raise(ex);
    }
    catch (Exception ex2)
    {
        throw ex2;
    }
}

Я могукажется, не найти способ создать пользовательское исключение, где мы указываем имя пользователя.

1 Ответ

0 голосов
/ 06 января 2012

Если вы можете, я предлагаю запускать веб-сервис от имени пользователя, обладающего соответствующими полномочиями. Конечно, это будет зависеть от того, как именно ваши пользователи проходят аутентификацию, но это вариант.

Вот как мы это делаем (добавлено в web.config веб-службы):

<identity impersonate="true" userName="registry:HKLM\Software\OurApp\ASPNET_SETREG,userName" password="registry:HKLM\Software\OurApp\ASPNET_SETREG,password"/>

Мы используем утилиту aspnet_setreg для записи имени пользователя и пароля домена в реестре, и этот пользователь отвечает за все взаимодействия с базой данных и т. Д.

...