C# 如何在asp.net webforms中模拟Webbrowser.Navigate
我需要发送一个请求,比如使用WebBrowser.Navigate(从windows窗体),但是,我希望使用iframe而不是windows窗体组件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
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;
}