以其他用户身份运行Internet Explorer

时间:2017-12-25 23:56:05

标签: vb.net internet-explorer impersonation runas

我尝试使用其他用户启动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

2 个答案:

答案 0 :(得分:0)

好的,我已经为此寻找了很多解决方案,如果你拥有它,你应该获得诺贝尔奖。同时,如果它可以帮助任何人这是我必须使用的解决方法:

使用Process.Start运行包含以下代码的.bat文件:

runas /user:User@Domain.com "C:\Program Files\Internet Explorer\iexplore.exe"

然后,当出现命令提示符时,我使用发送键输入密码,然后按Enter键。

这将启动具有不同凭据的IE。但同样,应该有更好的方法。

答案 1 :(得分:0)

这可能/可能不起作用。尝试启动需要单点登录“ CHROME”的网站,按F-12键,转到“应用程序”选项卡-> Cookies->单击您的网站链接。在左侧寻找代表您的会话ID的内容,可以是JSESSIONID或类似名称,然后将其复制。现在打开您的Internet Explorer,按F-12键并通过在控制台窗口中运行此命令手动创建JSESSIONID

document.cookie = "JSESSIONID=<your-session-id-from-chrome"

点击播放按钮执行脚本 刷新浏览器