我有一个需要在默认Web浏览器上打开外部URL的应用程序,但我不想在URL上显示参数,所以我认为我需要进行POST而不是GET,但是如何? / p>
我正在使用以下代码打开外部默认浏览器
Friend Sub WebOpen(ByVal WebAddress As String)
Dim sInfo As New ProcessStartInfo(WebAddress)
Process.Start(sInfo)
End Sub
但是这会暴露网址栏上的所有参数,因为它们不是一个GET而不是POST。
解决方案: 创建一个临时HTML文件并使用以前的代码打开它(WebOpen(ByVal WebAddress As String))
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<!-- <head>
</head> -->
<body>
<form name="Login" method="post" action="http://www.yourWebPage.com/" target="_self">
<input id="accountLoginField" class="textInput" name="account" value="accountX" size="24"
maxlength="32" type="hidden"/>
<input id="userLoginField" class="textInput" name="user" value="userX" size="24"
maxlength="32" type="hidden"/>
<input class="textInput" name="password" value="PassX" size="24" maxlength="32" type="hidden"/>
<input name="submit" value="Start Session" type="submit" id="btn" style="color: transparent;
background-color: transparent; border-color: transparent; cursor: default;"/>
<script type="text/javascript">
<!--
var counter = 0;
var maxCount = 50;
function pushSubmit() {
if (counter++ < maxCount) {
document.getElementById('btn').click();
}
}
//start the process
window.setTimeout(pushSubmit(), 30);
</script>
</form>
</body>
</html>
答案 0 :(得分:1)
希望您能够使用此处的旧帖子找到答案:How to open IE with post info in C#?
如果这有助于您解决问题,请将此标记为答案。
答案 1 :(得分:0)
您可以在vb.net中使用字符串加密器(您必须自己查找),然后执行此操作:
的Process.Start(解密( “encryptedstringhere”))
这将“隐藏”试图反编译代码的任何人的参数。 要么 编译完可执行文件后,找到一个vb.net混淆程序(只是google)并混淆你的exe。这将使nayone试图反编译它或在你的参数中找到什么字符串是不可读的....
希望这有帮助!
Rodit