Хорошо, поэтому я пишу программу для доступа к службе RESTful, но сначала я должен предоставить аутентификацию на веб-сайте. У меня есть действительные учетные данные и весь мой код выглядит следующим образом:HttpWebRequest Аутентификация не работает
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Net;
using System.IO;
namespace AccessAPI
{
class Program
{
static void Main(string[] args)
{
string uri = "http://domainName/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
string auth = CreateAuthorization("http://domainName/", "my\\username", "password");
request.Headers["Authorization"] = "Basic " + auth;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
Console.WriteLine(reader.ReadToEnd());
}
static string CreateAuthorization(string realm, string userName, string password)
{
string auth = ((realm != null) && (realm.Length > 0) ?
realm + @"\" : "") + userName + ":" + password;
auth = Convert.ToBase64String(Encoding.Default.GetBytes(auth));
return auth;
}
}
}
Я пришел далеко, используя некоторые из решений, размещенных на других форумах. Хотя это, казалось, сработало для некоторых людей, это не для меня. Во-первых, я знаю, что учетные данные являются точными. Я могу ввести их через веб-браузер, и они ведут себя так, как должны. Кроме того, я удостоверился, что любой «\» в них (есть один в имени пользователя) представлен «\\» в коде. Каждый раз, когда я запускаю это, я продолжаю возвращаться. «Удаленный сервер вернул ошибку: (401)« Неавторизованный ». Может ли кто-нибудь помочь мне устранить эту проблему? Спасибо за ваше время!
Использует ли служба REST базовую аутентификацию? очень распространенная практика заключается в том, чтобы иметь ресурс с именем «login» или «auth» или что-то еще, передать ему учетные данные, получить токен авторизации, а затем использовать этот токен, вам нужно прочитать служебную документацию. Чтобы увидеть, какой механизм авторизации использует. – Gusman