2011-01-25 6 views
1

У меня есть приложение winform, которое требует от меня проверить, существует ли страница на нашей вики или нет. Однако для этого запроса требуются учетные данные пользователей NetWork.Получить пользователей NT Credentials в Winform App

Я не хочу жестко кодировать свои учетные данные, и я не хочу, чтобы пользователям приходилось манипулировать App.config каждый раз, когда кто-то другой его использует (есть и проблема, связанная с тем, что они должны раскрывать свой пароль в приложении. Config). Есть ли способ получить учетные данные текущего пользователя NT? Мне не нужно, чтобы увидеть его (что бы очевидный вопрос безопасности), мне просто нужно это для следующей строки кода:

HttpWebRequest WikiPageRequest; 
WikiPageRequest.Credentials = new NetworkCredential("user", "pass", "dom"); 
//maybe do something like this 
WikiPageRequest.Credentials = GetNTCredentials(); 

ответ

3

Вы можете использовать CredentialCache.DefaultCredential? Похоже, вы получаете текущие зарегистрированные учетные данные пользователей.

+0

Или http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultnetworkcredentials%28v=vs.80%29.aspx. Работает только для NTLM/Negotiate/Kerberos. – sisve

+0

Эти учетные данные будут работать, если сайт находится в IIS и использует «Аутентификацию Windows». –

+0

Да, это сработало. Благодаря тонну! – xbonez

0

Если на «вики», вы имеете в виду развертывание MediaWiki, затем к сожалению, вам нужен идентификатор пользователя и пароль.

К сожалению, вы не можете получить его из Windows, потому что даже сама ОС Windows не знает пароль. Он просто хранит хэш пароля.

Кстати, почему вы не запрашиваете идентификатор пользователя/пароль для вики каждый раз, когда пользователь запускает приложение?