使用基本身份验证从控制器重定向到外部URL

时间:2014-03-28 18:28:52

标签: c# asp.net-mvc authentication redirect

我在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());

1 个答案:

答案 0 :(得分:0)

有两种方法可以从浏览器获取凭据到服务器。他们可以进入URL,也可以进入授权标题。 URL方法很容易实现,请参阅this SF question。对于授权标题,维基百科有how to construct it的说明,但我不确定如何将其发送给页面请求(与可能的Ajax请求相反)。