EDIT: внизу.C# WebClient FormsAuthentication
У меня есть сайт, который использует WebService. Аутентификация разрешается следующим образом: «How to: Implement Simple Forms Authentication».
У меня есть приложение WinForms, которое не может подключиться к WebService (потому что для этого требуется аутентификация). Есть пример, как выполнить эту аутентификацию между WebService и WinForms? Я слышал о System.Net.HttpWebRequest, но я не нашел примера, чтобы использовать его.
class CookieWebClient : WebClient
{
public CookieContainer CookieContainer { get; private set; }
/// <summary>
/// This will instanciate an internal CookieContainer.
/// </summary>
public CookieWebClient()
{
this.CookieContainer = new CookieContainer();
}
/// <summary>
/// Use this if you want to control the CookieContainer outside this class.
/// </summary>
public CookieWebClient(CookieContainer cookieContainer)
{
this.CookieContainer = cookieContainer;
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address) as HttpWebRequest;
if (request == null) return base.GetWebRequest(address);
request.CookieContainer = CookieContainer;
return request;
}
}
и когда я хочу, чтобы проверить подлинность себя:
using (var client = new CookieWebClient())
{
var values = new NameValueCollection
{
{ "UserEmail.Text", "Administrator" },
{ "UserPass.Text", "admin" },
};
client.UploadValues("http://localhost:54787/logon.aspx", values);
// If the previous call succeeded we now have a valid authentication cookie
// so we could download the protected page
string result = client.DownloadString("http://localhost:54787/MyWantedPage.aspx");
}
Проблема заключается в том, может быть, что я не правильно поставить пользователя и пароль (Администратор/администратора) в правом поле на Logon.aspx ... (UserMail и UserPass).
Что вы делаете? (конечно, я предполагаю, что проще использовать класс WebClient ..) (Если я действительно получил его, NetworkCredentials доступен только с проверкой подлинности Windows и Basic Authenticaiton isnt? Я на своей стороне, FormsAuthentication - тот же самый в URL-адресе I дал)
EDIT:
ОК, я видел здесь:
http://odetocode.com/articles/162.aspx
И так, я также пытался выполнить HTTPWebRequest видел его на этой странице.
Я получаю эту ошибку при закрытии ответ:
webRequest.GetResponse().Close();
ошибка находится ниже:
System.Net.WebException: Le serveur distant a retourné une erreur : (500) Erreur interne du serveur.
à System.Net.HttpWebRequest.GetResponse()
Видимо есть на самом деле проблема с моим запросом POST WebClient и моим HTTPWebRequest, может быть что-то настроить на сервере IIS?
Еще раз спасибо сообществу!
Итак, вы уже пробовали отправить HttpWebRequest? Вы пытались добавить NetworkCredentials в свой ресурс Credentials? – cubrr
@GrawCube Я устал от этого: (см. EDIT) – FrenchyBoss
ok, есть ли у кого-нибудь ответ? : D – FrenchyBoss