【发布时间】:2015-02-14 17:25:36
【问题描述】:
我正在努力实现以下目标:
- 我正在构建一个 MVC 网站,它将帮助我自动登录到另一个网站。
- WebsiteA 将使用 HttpWebRequest 调用 WebsiteB。
- WebsiteA 将通过 headers (request.headers.add) 发送用户的详细信息
- WebsiteB 将处理所有用户身份验证,并在内部重定向到授予该用户访问权限的另一个页面。
我已经设法实现了其中的一部分,但我一直在显示重定向返回。有谁知道这是否可以实现?
这是在 WebsiteA 应用程序中调用的一些代码:
[HttpPost]
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult LogIn(myModel model)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://websiteB/LogIn.aspx");
request.AllowAutoRedirect = true;
request.Method = "POST";
request.Headers.Add("MyUserToLogon", model.User); //I'm sending my user through headers
string postData = "This is a test";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//Get the response from the Login Page
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// Display the status.
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
//What to do here? I want to go to the redirected page from WebSiteB/Page1.aspx
//See code below for WebSiteB.
return null;
}
在 WebSiteB 中,我有在用户成功登录时执行重定向的代码:
.......
users = Request.QueryString["MyUserToLogon"];
.......
private void LogIn(string user)
{
GrantUser(user, Session.SessionID);
HttpCookie mycookie = new HttpCookie("test");
mycookie .Expires = DateTime.Now.AddMinutes(10);
Response.Cookies.Add(mycookie);
Response.AddHeader("mycookie ", mycookie .Value);
Response.Redirect("WebsiteB/Page1.aspx");
}
任何帮助将不胜感激。
【问题讨论】:
-
也许这个 SO 链接可以给你一些想法stackoverflow.com/questions/24057939/…
-
谢谢,但这不是我需要的。
标签: c# redirect cookies httpwebrequest httpwebresponse