我正在尝试使用其他用户启动Internet Explorer以访问需要单点登录的网站。
下面是我正在使用的代码。它不会产生任何错误,但IE根本不会启动,甚至不会启动。
Try
System.Diagnostics.Process.Start(IExplorerPath, Username, ConvertToSecureString(Password), Domain)
Success = True
Catch ex As Exception
Success = False
Error_Message = ex.Message
End Try
我也用相同的结果尝试了以下变化(没有):
Try
Dim psi As New ProcessStartInfo()
psi.Filename = IExplorerPath
psi.UserName = Username
psi.Domain = Domain
psi.Password = ConvertToSecureString(Password)
psi.UseShellExecute = False
Process.Start(psi)
Success = True
Catch ex As Exception
Success = False
Error_Message = ex.Message
End Try
这是ConvertToSecureString函数:
Function ConvertToSecureString(ByVal str As String)
Dim password As New SecureString
For Each c As Char In str.ToCharArray
password.AppendChar(c)
Next
Return password
End Function
好吧,我一直在寻找很多解决方案,如果你有它,你应该得到诺贝尔奖。同时,如果它可以帮助任何人这是我必须使用的解决方法:
使用Process.Start运行包含以下代码的.bat文件:
runas /user:[email protected] "C:\Program Files\Internet Explorer\iexplore.exe"
然后,当出现命令提示符时,我使用发送键输入密码,然后按Enter键。
这将启动具有不同凭据的IE。但同样,应该有更好的方法。
这可能/可能不起作用。尝试在“CHROME”中启动需要单点登录的网站,点击F-12,转到应用程序选项卡 - > Cookies - >单击您的站点链接。在左侧寻找代表您的会话ID的东西,可能是JSESSIONID或类似的,复制它。现在打开您的Internet Explorer,点击F-12并通过在控制台窗口中运行此命令手动创建该JSESSIONID
document.cookie = "JSESSIONID=<your-session-id-from-chrome"
点击播放按钮执行脚本刷新浏览器