表单或基本身份验证

我有一个Windows应用程序需要调用Forms Authenticated MVC操作。 问题是,我不确定如何将Windows应用程序的调用验证到Forms Authenticated MVC应用程序中。

以下代码返回登录页面。 有没有办法允许下面的代码通过任何方式使用Forms身份验证,还是我需要创建一个新的Web API项目,使用基本身份验证这个工作?

WebRequest req = WebRequest.Create("http://myurl/protectaction");
req.Credentials = new NetworkCredential("username", "password");

var res = req.GetResponse();

非常感谢您的帮助,

理查德休斯


您可以使用CookieContainer来存储由LogOn操作发出的FormsAuthentication cookie。 因此,基本上,您将向LogOn操作发送第一个请求,然后为随后的请求重新使用相同的WebRequest实例。

这样你将只通过电线发送你的凭证一次。

例如:

var container = new CookieContainer();

var req = (HttpWebRequest)WebRequest.Create("http://myurl/account/logon");
req.CookieContainer = container;
req.Method = "POST";
using (var writer = new StreamWriter(req.GetRequestStream()))
{
    var data = HttpUtility.ParseQueryString(string.Empty);
    data["username"] = "john";
    data["password"] = "secret";
    writer.Write(data.ToString());
}
using (var res = req.GetResponse())
{
    // You could check here if login was successful
}

req = (HttpWebRequest)WebRequest.Create("http://myurl/protectedresource");
req.CookieContainer = container;
using (var res = req.GetResponse())
using (var reader = new StreamReader(res.GetResponseStream()))
{
    string result = reader.ReadToEnd();
    // do something with the protected resource
}
链接地址: http://www.djcxy.com/p/42077.html

上一篇: Forms or Basic Authentication

下一篇: Forms authentication in web.config