Über WCF die Windowsgruppe(n) des Clients rausfinden

  • VB.NET

    Über WCF die Windowsgruppe(n) des Clients rausfinden

    Hallo Leute,

    Ich versuche gerade in VB über WCF einen Dienst zu programmieren.

    Nun brauche ich den Benutzername und seine Benutzergruppe(n), dies ist wegen der Rechteverwaltung notwendig.

    VB.NET-Quellcode

    1. Name = OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name.ToString

    Damit habe ich den Benutzernamen, es funktioniert auch (immer auf den angemeldeten Client bezogen)

    Nun will ich noch die Benutzergruppen wissen.

    VB.NET-Quellcode

    1. OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Groups.

    Aber hier weis ich nicht weiter.

    Ich habe folgenden C#-Code, schaffe es aber nicht diesen "umzuschreiben":

    Quellcode

    1. public static bool IsUserInGroup(string groupName)
    2. {
    3. WindowsIdentity currentUser = WindowsIdentity.GetCurrent();
    4. IdentityReferenceCollection userGroups = currentUser.Groups;
    5. foreach (IdentityReference group in userGroups)
    6. {
    7. IdentityReference translated = group.Translate(typeof(NTAccount));
    8. if (groupName.Equals(translated.Value, StringComparison.CurrentCultureIgnoreCase))
    9. {
    10. return true;
    11. }
    12. }
    13. return false;
    14. }


    Kann da einer helfen? Am besten so, das ich es über Strings überprüfen kann... :(

    EDIT
    Es funktioniert... Habe mal einen namespace importiert.

    VB.NET-Quellcode

    1. Imports System.Security.Principal
    2. [...]
    3. For Each grp As IdentityReference In OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Groups
    4. Dim translated As IdentityReference = grp.Translate(GetType(NTAccount))
    5. MsgBox(translated.Value)
    6. Next
    7. [...]

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