Я пытаюсь кодировать некоторые функции, где пользователь может войти на удаленный сервер, используя свои собственные учетные данные Windows или указав пользователя, пароль и домен.
Чтобы узнать, как это сделатьЯ прочитал эту ссылку [1].
Мне удалось успешно войти через CredentialCache.DefaultCredentials
.
Однако всякий раз, когда я пытаюсь пройти аутентификацию через пользователя, имя, пароль и домен, я продолжаю получать ошибку 401.
После некоторого поиска в Google и поиска здесь я обнаружил некоторые вероятные ошибки (перенаправление,различные типы аутентификации {basic
, digest
, ntlm
, negotiate
} и даже обратный случай [то есть возможность входа через user + pasword, но без CredentialCache.DefaultCredentials
]).
Любые намеки?
Редактировать : возможно, какой-нибудь код даст вам некоторые подсказки о том, что я делаю неправильно.
static void Main(string[] args)
{
string password = "password", username = "Username", dom = "DOMAIN";
string url = "http://my.url.com/LoginWithNativeCredentials?";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
/////// Different User code////
NetworkCredential credentials = new NetworkCredential(username, password, dom);
CredentialCache cache = new CredentialCache();
cache.Add(new Uri(url), "NTLM", credentials);
request.Credentials = cache;
/////////////////////////
////// Current Windows user's credential
//request.Credentials = CredentialCache.DefaultCredentials;
/////////////////////////
request.AllowAutoRedirect = true;
request.CookieContainer = new CookieContainer(5);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Console.WriteLine("In!");
}
Console.WriteLine("Done!");
Console.ReadLine();
}
Большое спасибо!
[1] http://support.microsoft.com/kb/811318