0

什么,我试图做我连登录:HtppWebRequest重定向当我登录

  1. 登录到一个窗体身份验证MVC网站使用正常的登录方法/页
  2. 我登录后和我在主页上,我想发送一个ajax请求到一个控制器 - >动作,它使用HttpWebRequest对象请求一个网页。

问题是我得到的响应是登录页面。这意味着HttpWebRequest不尊重我登录到网站的事实。

问题是我需要读取我的系统上的本地cookie并将它们与我的请求一起发送。下面的cookie容器是空的。所以,我所要求的是用我的机器上的任何cookie填充CookieContainer的方法。

 CookieContainer cookies = new CookieContainer(); 
     String URL = "http://mysite.com/pages/fakepage.aspx"; 
     HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest; 
     webRequest.AllowAutoRedirect = true; 
     webRequest.CookieContainer = cookies; 
     StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()); 
     string responseData = responseReader.ReadToEnd(); 

的responseData上面包含登录页面:(

+0

看到它在铬,如果铬显示你仍然登录。我会怀疑你的路由 –

回答

0

这里是答案的人坚持了同样的问题的问题。如果你在下面注意到的,我刚刚从Request对象读取饼干并填充我的CookieContainer与它。这需要照顾所有的问题!

CookieContainer cookies = new CookieContainer(); 
    webRequest.CookieContainer = cookies; 
    for(int i=0; i<Request.Cookies.Count; i++) 
     webRequest.CookieContainer.Add(new Cookie(Request.Cookies[i].Name, Request.Cookies[i].Value, Request.Cookies[i].Path, FormsAuthentication.CookieDomain));