Ausführen von ClickOnce-Anwendung als Administrator

Habe ich eine vb.net clickonce-Anwendung, die verwendet werden von low-level-Personal mit nicht-administrator-Zugriffe. Jedoch, die Anwendung selbst benötigt zum speichern von Dateien in einem Ordner auf dem server, der versteckt ist und erlaubt nur lese - /schreib-Zugriff für Administratoren. Ich brauche für diese Benutzer in der Lage sein, um die Interaktion mit diesen Ordner mit der Anwendung, ohne Ihnen die Möglichkeit zu durchsuchen, um den Ordner auf Ihrem eigenen. Ich habe versucht, mit mehreren Identitätswechsel Techniken, die keiner hat.

http://weblogs.asp.net/ralfw/archive/2003/11/24/39479.aspx ist eine, die ich versucht habe. Er sagt immer noch der Zugriff verweigert wird, obwohl wenn ich Zurück System.Sicherheit.AUFTRAGGEBER.WindowsIdentity.GetCurrent().Namen es gibt den administrator-Anmeldeinformationen an.

Habe ich versucht, die Schaffung einer anderen Anwendung, die einfach funktioniert ein StartProcess sich mit administrator-Anmeldeinformationen, aber die Datei, die ich versuche zu starten ist .Anwendung und nicht ein .exe-Datei, so bekomme ich "Die angegebene ausführbare Datei ist keine gültige Anwendung für diese OS-Plattform" Fehler.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim file_name As String = "file path to .application file"

    Dim p As New ProcessStartInfo(file_name)
    p.UseShellExecute = False
    p.Domain = "domain"
    p.UserName = "administrator"
    p.Password = New System.Security.SecureString()
    For Each c As Char In "password"
        p.Password.AppendChar(c)
    Next
    Process.Start(p)

End Sub

Habe ich versucht, dabei eine StartProcess für Internet Explorer und bietet ein argument die url zu der .Anwendung-Datei, die funktioniert, bis ich versuche, Anmeldeinformationen anderer als meine eigenen, und ich bekomme ein "cannot find file" - Fehler. Wenn ich alles entfernen von p aus.Benutzername zur Nächsten, öffnet die Anwendung, aber die Benutzer und nicht administrator. Unten ist der code für ein Versuch.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim p As New ProcessStartInfo(My.Computer.FileSystem.SpecialDirectories.ProgramFiles + "\Internet Explorer\IEXPLORE.EXE")
    p.UseShellExecute = False
    p.Domain = "domain"
    p.UserName = "administrator"
    p.Password = New System.Security.SecureString()
    For Each c As Char In "password"
        p.Password.AppendChar(c)
    Next

    p.Arguments = ("URL to .application file")
    Process.Start(p)

End Sub

Bin ich in einem absoluten Verlust, wie haben diese Anwendung als admin ausführen, so dass Benutzer können Dateien anzeigen und speichern von Dateien dieser geschützten Lage nur mithilfe dieser Anwendung.

  • Oh vergaß zu erwähnen, dass hab ich auch versucht, indem die .appref-ms, wie eine Anwendung Verweis auf mein Projekt und verwendet es in der processstartinfo() Bereich, und es hat funktioniert. Aber die .appref-ms-Datei von clickonce-stores in c:\\user\ " und dann den Benutzernamen des angemeldeten Benutzers an. Also, um für diese zu arbeiten, die ich brauchen würde, um in der Lage sein, dynamisch zu ändern, dass ein Abschnitt von mein Verweis auf was auch immer der Benutzer eingeloggt ist. Also, wenn jemand weiß, wie zu tun, dass es vielleicht einfacher. Danke!
InformationsquelleAutor jmease | 2011-06-28
Schreibe einen Kommentar