C # SSL Базовая аутентификация доступа - PullRequest
4 голосов
/ 14 июля 2009

Я хочу запросить отчеты у третьих лиц, и для них требуется «Базовая аутентификация доступа» через POST:

Your client application must use Basic Access Authentication 
to send the user name and password.

Может ли кто-нибудь указать мне правильное направление?

Редактировать: я видел это сообщение , но есть два ответа, и я не уверен, что это то, что мне нужно сделать, или какой из них предпочтительнее.

Ответы [ 2 ]

6 голосов
/ 14 июля 2009

Предполагая, что вы используете WebRequest, вы прикрепляете CredentialCache к вашему запросу:

        NetworkCredential nc = new NetworkCredential("user", "password");
        CredentialCache cc = new CredentialCache();
        cc.Add("www.site.com", 443, "Basic", nc);


        WebRequest request = WebRequest.Create("https://www.site.com");
        request.Credentials = cc;
        request.PreAuthenticate = true;
        request.Method = "POST";

        // fill in other request properties here, like content

        WebResponse respose = request.GetResponse();
2 голосов
/ 07 августа 2012

Основная суть такова:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = WebRequestMethods.Http.Get;
request.Credentials = new NetworkCredential(username, password);

но иногда возникают проблемы с использованием учетных данных запроса, альтернатива - добавить данные аутентификации в заголовки запроса

string authInfo = username + ":" + password;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
request.Headers["Authorization"] = "Basic " + authInfo;

для более подробной информации смотрите этот пост в блоге

http://charlie.cu.cc/2012/05/how-use-basic-http-authentication-c-web-request/

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