我在ASP.NET MVC3中有一个门户,在某些特定操作中,我需要在新标签中打开一个外部门户,该门户是从其他团队开发的,需要进行基本身份验证。
我知道我们在控制器中有重定向方法,允许重定向到任何URL。但我不知道如何将凭据传递给它。
我正在尝试这样的事情:
var request = (HttpWebRequest)WebRequest.Create(redirectUrl);
request.Method = "GET";
request.UseDefaultCredentials = false;
request.PreAuthenticate = true;
var cred = new NetworkCredential("user1", "pass123");
var cache = new CredentialCache();
cache.Add(new Uri(redirectUrl), "Basic", cred);
request.Credentials = cache;
var response = (HttpWebResponse) request.GetResponse();
return Redirect(response.ResponseUri.ToString());
答案 0 :(得分:0)
有两种方法可以从浏览器获取凭据到服务器。他们可以进入URL,也可以进入授权标题。 URL方法很容易实现,请参阅this SF question。对于授权标题,维基百科有how to construct it的说明,但我不确定如何将其发送给页面请求(与可能的Ajax请求相反)。