Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > System.Net.CredentialCache


Автор: SpaceSpace 27.6.2007, 07:51
Всем здравствовать.
Вопрос такой:

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

Код

                MyCredentialCache = new System.Net.CredentialCache();
                MyCredentialCache.Add(new System.Uri(strURI),
                   "NTLM",
                   new System.Net.NetworkCredential(strUserName, strPassword, strDomain)
                   );


Вот мне надо автоматически достать строки
strUserName, strPassword, strDomain

Как?

Автор: tol05 27.6.2007, 09:33
Ну так CredentialCache.DefaultCredentials как раз и 
Цитата

Свойство DefaultCredentials содержит учетные записи текущего контекста безопасности. Для клиентских приложений эти учетные записи содержат имя пользователя, пароль и домен пользователя, зарегистрированного в текущий момент. 


Автор: SpaceSpace 27.6.2007, 10:11
Код

            nick.Text = System.Net.CredentialCache.DefaultNetworkCredentials.UserName;
            pass.Text = System.Net.CredentialCache.DefaultNetworkCredentials.Password;
            dom.Text = System.Net.CredentialCache.DefaultNetworkCredentials.Domain;


там храняться пустые строки!
а мне нужны конкретные значения

Автор: tol05 27.6.2007, 10:20
А зачем? Опубликовать в инете?   smile 
Пароль винда НИКОГДА и НИКОМУ не выдает. Про него сразу забудь
а насчет того, чтоб узнать о имени о домене - я как-то юзал 
WindowsIdentity.GetCurrent() и, в частности, WindowsIdentity.GetCurrent().Name

Автор: thomas 27.6.2007, 10:29
В VB можно так сделать (в C# примерно так же наверное)
Код

Dim massege as String = System.Environment.UserName

Автор: SpaceSpace 27.6.2007, 10:34
приложение стоит на клиенте.
стучиться к серверу по WebDav.

Как сделать автоматически?
Может есть каой то диалог, чтобы получить System.Net.CredentialCache ?

мне пароли не нужны!
авторизировать пользователя надо без дополнительных ввода логин\пароль!!!

я так понял, что встрял....

Добавлено @ 10:38
может System.Net.CredentialCache.DefaultNetworkCredentials всё таки возвращает то что надо?
просто я прочитать их не могу,
да они и не нужны мне, главное чтобы коннект был!

просто он даже userName пустой строкой дает! как мне проверить, что он берет именно то...

Автор: tol05 27.6.2007, 13:28
Погоди, если тебе нужно
Цитата(SpaceSpace @  27.6.2007,  07:51 Найти цитируемый пост)
тот логин/пароль, которые ввел пользователь для логина в Windows, и не запрашивать дополнительного ввода логина и пароля

то это - windows аутентификация. IIS так же делает: он обменивается данными с броузером без участия юзера. Но после того, как броузер передает серверу данные, тот их должен или принять, или отвергнуть. А значит, рабочие Windows аккаунты всех юзеров должны быть у тебя на сервере, в учетных записях. По-моему так.

Цитата(SpaceSpace @  27.6.2007,  10:34 Найти цитируемый пост)
System.Net.CredentialCache.DefaultNetworkCredentials всё таки возвращает то что надо

По идее так, иначе нафиг он нужен? Прочитать - конечно нельзя. Не в открытом же виде по сети они гонятся smile Я бы потестил все-таки с System.Net.CredentialCache.DefaultNetworkCredentials. Но опять же, пришли к тебе какие-то данные. Сервер должен их принять или отвергнуть...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)