Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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,在发布数据时重定向到外部页面_C#_Asp.net_Post_Http Post - Fatal编程技术网

C# ASP.Net,在发布数据时重定向到外部页面

C# ASP.Net,在发布数据时重定向到外部页面,c#,asp.net,post,http-post,C#,Asp.net,Post,Http Post,您好,我需要在我的ASP.Net应用程序中处理外部API 在我的应用程序中单击一个按钮,我必须将用户重定向到一个外部URL,同时发布一些用户凭据(用户名、密码),以允许访问该URL(外部第三方页面) 如果我试图访问该外部页面而不发布凭据(只是重定向),我将无法查看所需的页面,并显示一条错误消息,说明凭据无效(来自第三方页面) 假设以下是信息 1. URL need to access : https://externalurl.com/external-page.asp 2. username

您好,我需要在我的ASP.Net应用程序中处理外部API

在我的应用程序中单击一个按钮,我必须将用户重定向到一个外部URL,同时发布一些用户凭据(用户名、密码),以允许访问该URL(外部第三方页面)

如果我试图访问该外部页面而不发布凭据(只是重定向),我将无法查看所需的页面,并显示一条错误消息,说明凭据无效(来自第三方页面)

假设以下是信息

1. URL need to access : https://externalurl.com/external-page.asp
2. username           : myusername
3. password           : mypassword
  • 如果我做一个简单的HTML表单提交,它的工作非常出色,如下所示

不知道如何在ASP.Net的C#代码中实现这一点

我可以使用
WebRequest
api发布数据,但无法在同一会话中重定向。如果有人能指导做这件事,那就太好了。提前感谢

编辑…

  • 在我的情况下,我不能使用javascript或任何客户端脚本来实现这一点

  • 基本上,我不必阅读我的帖子数据的任何回复。我需要重定向到该页面(发布信息时的外部位置)


  • 您可以使用
    HttpWebRequest
    ,但是您需要缓存您的凭据,以便在每个请求中传递凭据,而不仅仅是第一个请求;像这样:

    // Set queryUrl to your URL, either hard-coded or passed in
    HttpWebRequest req = WebRequest.Create(queryUrl) as HttpWebRequest;
    
    // Set your credentials
    NetworkCredential cred = new NetworkCredential(username, pwd, domain); 
    
    // Setup cache to store your credentials for future requests
    var cache = new CredentialCache {{queryUrl, "Ntlm", cred}};
    req.Credentials = cache;
    
    HttpWebResponse response = req.GetResponse() as HttpWebResponse;
    

    你喜欢这个扣子吗


    您可以像现在一样设置表单方法和操作。或者在按钮上使用postbackURL

    问题是在元素上设置名称以便能够提交它们。必须使用javascript设置隐藏字段。因为.net更改了服务器端控件上呈现元素的“name”属性


    因此,在按钮的客户端单击事件中,您可以将隐藏字段的值(就像您问题中的字段)设置为您需要的任何值。并且,当表单提交时,它们将以专有名称发布。

    尝试使用此类WebClient为什么表单发布解决方案不够?如果没有客户端脚本,我认为这是唯一的方法,除非您将服务器用作客户端和外部服务器之间的代理。换句话说,您不会重定向客户端,而是充当与双方(外部服务器和客户端)进行通信的中间人。您好,mikey,是的,如果任何ASP.Net API都无法做到这一点,我愿意使用表单提交。但是用户名和密码值必须根据不同的用户动态设置。在这里怎么做有点困惑。如果你能详细解释一下,那就太好了。谢谢…@JibW-“用户名和密码值必须根据不同的用户动态设置”我试过这个,但是如何以这种方式发布数据?在我的例子中,“username:myusername”和“password:mypassword”只有2个文本框和按钮,并确保文本框的客户端id与“username”和密码匹配。您可以尝试将clientid模式设置为静态。或者像我刚才解释的那样使用jquery。刚刚创建了两个文本框,将ID字段命名为与之完全相同的名称,并添加了PostBackUrl属性。它试图访问该位置,但数据未发布。。。因此,当我使用正常重定向查看时,会看到错误消息。。。。