同时将标题重定向和发布到另一个应用程序-ASP.Net MVC

时间:2018-11-20 08:38:28

标签: c# asp.net-mvc request webclient webrequest

我想将系统重定向到集中式身份验证服务器,并且需要在标头中填写一些参数,然后完全重定向到身份验证服务器。使用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;

正如您在两种方法中看到的那样,请求者发布请求,并且正在等待接收响应。在向用户显示两个视图,获取用户名和密码并最终处理信息之前,我无法返回请求者系统。我需要在请求中填写标题,将其发布到服务器,然后重定向到中央身份验证服务器。我进行了很多搜索,发现无法同时发布和重定向。你能建议我其他方法吗?

0 个答案:

没有答案