Owner eines Ordners setzen

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von mpmichael.

    Owner eines Ordners setzen

    Hallo,

    ich versuche mit einem VB-WPF Programm eine Ordnerstruktur anzulegen und Rechte zu setzen. Eine Aufgabe dabei ist es auch einen "Owner" für den Ordner zu setzen.
    Ich bekomme aber im Code eine Fehlermeldung und habe auch über die Reference oder Google keine Valide Lösung finden können.

    Die Meldung lautet: BC30311 Visual Basic Der Wert vom Typ "String" kann nicht in "IdentityReference" konvertiert werden.
    Der Fehler ist in Zeile 5 ( ADDomain & "\" & DefOwner)

    Mein Code:

    VB.NET-Quellcode

    1. Dim ADDomain as String = "MeineDomain"
    2. Dim DefOwner as String = "MyUsername"
    3. Dim dInfo As New DirectoryInfo(FolderPath)
    4. Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()
    5. Dim DirOwner As Security.Principal.IdentityReference = ADDomain & "\" & DefOwner
    6. dSecurity.SetOwner(DirOwner)


    Vermutlich nur eine Kleinigkeit - aber ich beiße mir hier grade die Zähne aus. Über Hilfe würde ich mich sehr freuen.
    Beste Grüße
    Martin
    Also, bei so einer Frage weiß ich jetzt echt nicht, wie sicher es ist, mitzuhelfen.
    Die eine Seite ist eine IdentityReference, das andere ein String. Das sind zwei Typen, die einfach nicht ineinander umwandelbar sind. Das ist aber Grundlagenwissen, dass zwei Typen kompatibel sein müssen.
    Ggf. eine Möglichkeit - aber auf Dein eigenes Risiko hin:

    VB.NET-Quellcode

    1. Dim DirOwner As Security.Principal.IdentityReference = New Security.Principal.NTAccount(ADDomain & "\" & DefOwner)

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo,

    danke. Ich werde es versuchen. Ja, dass die beiden Typen unterschiedlich sind - das ist mir grundsätzlich auch klar - aber irgendwie ist es mir noch nicht gelungen herauszufinden, wie ich an die valide IdentityReference komme.
    Evtl. muss ich zunächst den String gegen das AD schicken um dann die Reference zurück zu bekommen?
    Ich probiere mal Deinen Ansatz und schreibe das Ergebnis!