我需要将Web应用程序外部的用户重定向到使用基本身份验证的页面。
以下是我一直在尝试的内容:
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
String username = "username";
String password = "password";
String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));
req.Headers.Add("Authorization", "Basic " + encoded);
HttpWebResponse response = req.GetResponse() as HttpWebResponse;
return this.Redirect(response.ResponseUri.ToString());
我也尝试过缓存方案,但是没有成功:
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
req.Credentials = myCache;
我可以寻求帮助吗?
答案 0 :(得分:1)
将我的Web应用程序外部的用户重定向到使用基本身份验证的页面
因此您想将某人重定向到另一个页面,并且该页面需要基本身份验证?因此,您想将用户定向到该目标页面吗?
然后,您将无法仅通过基本身份验证请求目标页面并对其进行处理。您基本上在这里有两个选择:
重定向到目标页面的URL,但将凭据作为URL的一部分包含在内,以便用户的浏览器将使用这些凭据再次对该页面执行基本身份验证。
具有基本身份验证凭据的URL通常如下所示:https://username:password@example.com/
。
因此,如果您希望凭据重定向到用户,则实际上必须向用户公开凭据。否则,您将无法让他们自己去那里,因为在没有使用户可见的情况下无法通过身份验证。