编辑:在底部。
我有这个网站,它使用一个WebService。 认证使能,使用这种方法:“ 如何:实现简单的窗体身份验证 ”。
我有一个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身份验证和基本Authenticaiton心不是我在我的身边已经,FormsAuthentication - ?在我给URL的同一个)
编辑:
OK,我在这里看到:
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()
显然,真的是有我的WebClient POST请求的问题,我的HttpWebRequest的,可能有一些配置IIS服务器上?
再次感谢社会!