Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net webforms中模拟Webbrowser.Navigate_C#_Asp.net_Iframe_Simulate - Fatal编程技术网

C# 如何在asp.net webforms中模拟Webbrowser.Navigate

C# 如何在asp.net webforms中模拟Webbrowser.Navigate,c#,asp.net,iframe,simulate,C#,Asp.net,Iframe,Simulate,我需要发送一个请求,比如使用WebBrowser.Navigate(从windows窗体),但是,我希望使用iframe而不是windows窗体组件 public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword) { string authInfo = userName + ":" + userPassword; authInfo = Convert.ToBase64

我需要发送一个请求,比如使用WebBrowser.Navigate(从windows窗体),但是,我希望使用iframe而不是windows窗体组件

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}
我正在尝试使用WebRequest和WebResponse,但在获取响应时遇到了一些问题。我是来自巴西SERASA公司的执行综合检查。使用windows窗体,没关系

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}
Windows窗体:

   String postData = string.Format("keyIntegracao={0}&key={1}&cnpj={2}&produto=      {3}&documento={4}&uf={5}", keyIntegrador, key,    cnpj, produto, documento, uf);

   System.Text.Encoding enconding = System.Text.Encoding.UTF8;
        byte[] bytePD = enconding.GetBytes(postData);

   string username = "user";
   string password = "pass";
   string url = String.Format("https://{0}:{1}@url.com.br/consulta/createRequest", username, password);

// Abertura do Componente WebBrowser

   webBrowser1.Navigate(url, "", bytePD, "Content-type: application/x-www-form-urlencoded");
public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}
现在,在webforms中,我正在尝试:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

 SetBasicAuthHeader(request, username, password);

 request.Method = "POST";
 request.ContentType = "application/x-www-form-urlencoded";
 request.ContentLength = bytePD.Length;

 Stream dataStream = request.GetRequestStream();            
 dataStream.Write(bytePD, 0, bytePD.Length);           
 dataStream.Close();

 HttpWebResponse response = (HttpWebResponse)request.GetResponse();                       

 dataStream = response.GetResponseStream();     

 StreamReader reader = new StreamReader(dataStream);

 string saida = reader.ReadToEnd().ToString();

 frame.Attributes.Add("src", response.ResponseUri.AbsoluteUri);


  reader.Close();
  dataStream.Close();
  response.Close();
public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}
方法

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}
为了将响应重定向到iframe,我使用了url“response.ResponseUri.AbsoluteUri”,但它并没有像实际那样显示响应。使用windows窗体,它可以正常工作

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}
如何使用webforms模拟Webbrowser.Navigate

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}

谢谢你们

你在把坚果和苹果混合

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}
在桌面上,您应该以某种方式(cookies、查询字符串等)将身份验证传递给webbrowser,但当您将url放入ASP.net的iFrame中时,您在服务器上进行了身份验证,因此客户端将不会被身份验证

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}

如果您想让他登录,或者想办法将身份验证传播到客户端,您应该在客户端执行身份验证过程。

对不起,我以前从未这样做过。你的意思是,当我收到请求的答复(响应)时,我应该执行身份验证过程?或者当我发送postData时?您不能在服务器(asp.net codebehind)中进行身份验证,而希望客户端知道在哪里进行身份验证。或者在客户端(javascript)中进行身份验证,或者找到一种将会话传播到客户端的机制(根据具体情况,这将非常困难)
public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
    string authInfo = userName + ":" + userPassword;
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
    request.Headers["Authorization"] = "Basic " + authInfo;
}