我想将系统重定向到集中式身份验证服务器,并且需要在标头中填写一些参数,然后完全重定向到身份验证服务器。使用Web客户端或Web请求,我必须返回一个值作为对请求者的响应(它们用作侦听器)。
WebClient发送请求示例:
var values = new NameValueCollection();
values["clientId"] = clientId;
values["clientIP"] = currentIP;
byte[] response;
var resultResponse = string.Empty;
using (var client = new WebClient())
{
try {
response = client.UploadValues(url, values);
resultResponse = Encoding.Default.GetString(response);
}
catch (WebException e)
{
string exception = string.Empty;
if (e.Status == WebExceptionStatus.ProtocolError)
{
exception += ((HttpWebResponse)e.Response).StatusCode;
exception += ((HttpWebResponse)e.Response).StatusDescription;
}
}
}
网络请求示例
string method = "post";
WebRequest req = WebRequest.Create(uri);
req.ContentType = contentType;
req.Method = method;
req.Headers.Add("myhead", value);
req.ContentLength = jsonDataBytes.Length;
var stream = req.GetRequestStream();
stream.Write(jsonDataBytes, 0, jsonDataBytes.Length);
stream.Close();
var response = req.GetResponse().GetResponseStream();
StreamReader reader = new StreamReader(response);
var respo = reader.ReadToEnd();
reader.Close();
response.Close();
return respo;
正如您在两种方法中看到的那样,请求者发布请求,并且正在等待接收响应。在向用户显示两个视图,获取用户名和密码并最终处理信息之前,我无法返回请求者系统。我需要在请求中填写标题,将其发布到服务器,然后重定向到中央身份验证服务器。我进行了很多搜索,发现无法同时发布和重定向。你能建议我其他方法吗?