Gerade hatte ich das Problem, einen Benutzer aus dem AD auszulesen und im Sharepoint zu berechtigen. Das Problem hierbei war, das man aus dem sAMAccountName nur den Teil des Namens bekommt und nicht etwa die Domain dazu.

Es wird aber für web.EnsureUser() genau der komplette Loginname benötigt.

Des Rätsels Lösung:

public static string GetLoginName(string alias)
{
            NTAccount nt = new System.Security.Principal.NTAccount(alias);
            SecurityIdentifier sid = (SecurityIdentifier)nt.Translate(typeof(SecurityIdentifier));
            nt = (NTAccount)sid.Translate(typeof(NTAccount));
            return nt.Value;
}

gefunden bei Dan

Hat mir jedenfalls eine Menge gefrickel erspart! Danke Dan

© 2012 Daniel Buschke - Blog Suffusion theme by Sayontan Sinha