Как Вы добираетесь, учетные данные (NetworkCredential) в настоящее время входили в систему пользователь?

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

Если я пишу следующее...

var credential = new NetworkCredential("MyUsername", "MyPassword");

... и передайте "учетные данные", они прекрасны. Но я хотел бы передать учетные данные текущего пользователя (это - служба Windows, так выполнения как указанный пользователь).

Я попробовал оба из следующих, но ни один, кажется, не работает (или возвращает что-либо):

NetworkCredential credential = System.Net.CredentialCache.DefaultCredentials;
NetworkCredential credential = CredentialCache.DefaultNetworkCredentials;

Кто-либо может предложить, как получить объект approriate, который представляет учетные данные имени пользователя, под которым работает услуга?

Спасибо

32
задан Black Light 21 November 2019 в 21:44
поделиться

2 ответа

Вам необходимо выполнить олицетворение, например:

    System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = 
    ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

//Insert your code that runs under the security context of the authenticating user here.

impersonationContext.Undo();

http://support.microsoft.com/ kb / 306158

Или вы можете использовать web.config:

<identity impersonate="true" />
0
ответ дан 27 November 2019 в 21:18
поделиться

пробовали ли вы WindowsIdentity.GetCurrent ()?

вы также можете посмотреть этот пример ... http: //www.codeproject .com / KB / vb / Windows_Service.aspx

2
ответ дан 27 November 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: