InternetExplorer mit Username und Password starten

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von xtts02.

    InternetExplorer mit Username und Password starten

    Hallo,

    ich möchte gerne den Internet Explorer mit Usercedentials starten.

    Als Vorbereitung habe ich bereits ein Form erstellt, in dem Username und Passwort abgefragt werden.
    Dies funktioniert auch soweit, ich kann zum Bsp. Mit diesen Daten Netzlaufwerke verbinden und trennen.

    Nun möchte ich in der Form einen Extrabutton, der den InternetExplorer unter Angabe der bereits vorhandenen Userdaten startet.

    Folgendes habe ich bereits versucht, jedoch ohne Erfolg...

    Private
    Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Dim Username AsString = UsernameBox.Text
    'Dim Password As String = PasswordBox.TextDim spassword AsSecureString = ConvertToSecureString(Me.PasswordBox.Text)
    Dim Domain AsString
    Domain = "xxx"
    Dim IEx AsString
    IEx = "iexplore.exe"
     Process.Start(IEx)
    System.Diagnostics.Process.Start("runas.exe", " /u: Domain\" & Username & " " & spassword & " " & IEx)
    TrySystem.Diagnostics.Process.Start(IEx, Username, spassword, Domain)
    Catch ex AsExceptionMessageBox.Show("Wrong username or password.", "Error logging in as administrator", MessageBoxButtons.OK, MessageBoxIcon.Error)
    EndTry
    EndSub
    Fehler: ---> & Operator funktioniert nicht mit String und System.Security.SecureString
    Hat jemand vielleicht eine andere Idee, wie ich dies umsetzen kann?

    Gruss
    Verena (Anfänger ;( )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „reni0815“ ()

    Sieh Dir mal dies an:

    VB.NET-Quellcode

    1. Dim pr As New Process
    2. pr.StartInfo.FileName = "Notepad.exe"
    3. pr.StartInfo.Arguments = "c:\temp\test.txt"
    4. pr.StartInfo.WorkingDirectory = "c:\temp"
    5. pr.Start()
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    reni0815 schrieb:

    ich verstehe nicht, was das mit meinem Problem zu tun hat...
    Ersetze das, was Dir bekannt aber unpassend vorkommt durch Deine eigenen von Dir zu benutzenden Werte.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Diese Möglichkeit ist ganz instesessant und scheint auch leicht zu händeln zu sein...

    Folgendes habe ich jetzt zusammen gestellt:


    VB.NET-Quellcode

    1. Public Property UserName As String
    2. Public Property Domain As String
    3. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    4. Dim IEx As New Process()
    5. 'MessageBox.Show(UsernameBox.Text)
    6. 'MessageBox.Show(PasswordBox.Text)
    7. Try
    8. IEx.StartInfo.UserName = UsernameBox.Text
    9. IEx.StartInfo.Password = ConvertToSecureString(Me.PasswordBox.Text)
    10. IEx.StartInfo.Domain = "xxxxxxx"
    11. Process.Start("C:\Program Files\Internet Explorer\Iexplore.exe")
    12. Catch ex As Exception
    13. MessageBox.Show("Wrong username or password.", "Error logging in as administrator", MessageBoxButtons.OK, MessageBoxIcon.Error)
    14. End Try
    15. End Sub



    Leider funktioniert es nicht. Der IE startet und fragt mich nach Username und Passwort, was nicht passieren würde, wenn die Daten mit übergeben werden.

    Über MessageBox habe ich getestet, ob die Benutzerdaten korrekt übertragen werden. Das ist der Fall.

    Starte ich den IE auf der gleichen Maschine mit einem Runas /u: Domain\Username funktioniert es

    Es verhält sich so, als würde nur der Prozess InternetExplorer gestartet werden, aber ohne Eigenschaften.



    PS: Warum ist der Beitrag als erledigt markiert? Ich bin doch noch ganz unglücklich.... ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „reni0815“ ()

    reni0815 schrieb:

    Warum ist der Beitrag als erledigt markiert?
    Du hast aus Versehen den Erledigt-Button gedrückt.
    Schreib einen Post und er ist wieder offen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wie startest Du den IE aus dem Explorer, dass das richtig funktioniert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mit proc.StartInfo.LoadUserProfile = True getestet....

    Funktioniert leider nicht.

    Funktionieren tut es nur in einem Command-Fenster, wenn ich runas... nutze.

    Oder Rechtsklick Ausführen als.... Benutzerdaten eingeben

    Das Form soll an einem PC genutzt werden, dessen automatisch angemeldeter User keine Rechte auf den Internetzugriff hat.
    Wenn jemand Internet nutzen möchte muss er Username und Passwort mitgeben. Die Herstellung der Verbindung funktioniert über einen Proxy...

    reni0815 schrieb:

    runas
    Frag mal Frau Google nach "command runas".
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    xtts02 schrieb:

    sicherlich
    @reni0815: Frag mal Frau Google nach startinfo verb runas.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich gebe alles mit und habe verschiedene Möglichkeiten geprüft, den Prozess zu starten.

    Leider bringt er mit entweder wrong Username or Password oder Startet den IE als der User, der angemeldet ist.

    VB.NET-Quellcode

    1. Public Property UserName As String
    2. Public Property Password As SecureString
    3. Public Property Domain As String
    4. Public Property FileName As StringPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    5. Try
    6. 'Dim IEx As System.Diagnostics.Process = Nothing
    7. Dim IEXStartInfo As System.Diagnostics.ProcessStartInfo
    8. IEXStartInfo = New System.Diagnostics.ProcessStartInfo()
    9. IEXStartInfo.FileName = "iexplore.exe"
    10. 'IEXStartInfo.LoadUserProfile = True
    11. IEXStartInfo.Verb = "runas"
    12. IEXStartInfo.UserName = UsernameBox.TextIEXStartInfo.Password = ConvertToSecureString(Me.PasswordBox.Text)
    13. IEXStartInfo.Domain = "Domain"Process.Start(IEXStartInfo)
    14. Catch ex As ExceptionMessageBox.Show("Wrong username or password.", "Error logging in as administrator", MessageBoxButtons.OK, MessageBoxIcon.Error)
    15. End TryEnd Sub


    Alles was ausgeblendet ist ('...) war auch schon aktiv...
    Filename war auch schon mit komplettem Pfad zur IE.Exe angegeben...
    :wacko:
    Taskmanager: Prozess wird ausgeführt als lokaler Admin und nicht als User, der mitgegeben wird.

    Zum Vergleich: Über eine cmd mit runas etc wird im Taskmanager der Prozess mit dem Account angezeigt, der mit gegeben wird.
    Kann ich irgendwie nich nachvollziehen.

    VB.NET-Quellcode

    1. Dim userName = "smxxxxx"
    2. Dim password = "xxxxxxx"
    3. Dim domain = "xxxxx.xxxx"
    4. Dim url = "www.vb-paradise.de"
    5. Dim ieFolder = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Internet Explorer")
    6. Dim ieFilename = IO.Path.Combine(ieFolder, "iexplore.exe")
    7. Dim procInfo As New ProcessStartInfo(ieFilename)
    8. With procInfo
    9. .UserName = userName
    10. .Domain = domain
    11. .Password = New Security.SecureString
    12. For Each c In password
    13. .Password.AppendChar(c)
    14. Next
    15. .WorkingDirectory = ieFolder
    16. .Arguments = url
    17. .UseShellExecute = False
    18. .Verb = "runas"
    19. .LoadUserProfile = True
    20. End With
    21. Dim proc As New Process()
    22. proc.StartInfo = procInfo
    23. proc.Start()