System.Net.CredentialCache и HttpWebResponse - PullRequest
       20

System.Net.CredentialCache и HttpWebResponse

1 голос
/ 24 августа 2011

Я пытаюсь кодировать некоторые функции, где пользователь может войти на удаленный сервер, используя свои собственные учетные данные 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

...