使用基本身份验证从控制器重定向到外部url
本文关键字:重定向 外部 url 控制器 身份验证 | 更新日期: 2023-09-27 17:55:06
我有一个门户在ASP。. NET MVC3,在一些特定的操作中,我需要在一个新的选项卡中打开一个外部门户,从其他团队开发,需要基本的身份验证。
我知道我们在控制器中有一个redirect方法,它允许重定向到任何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());
从浏览器到服务器获取凭据有两种方法。可以是URL,也可以是授权头。URL方法很容易实现,参见这个SF问题。对于授权头,维基百科有关于如何构造它的说明,但我不确定如何将其发送到页面请求(而不是Ajax请求,如果可能的话)。