Programmgesteuertes Hinzufügen von Benutzern zu einer Anspruchswebsite in SharePoint 2010

Veröffentlichung des Originalartikels: 14.01.2012

Ein Freund hat mir neulich ein interessantes Problem geschickt. Er hat versucht, einer Windows-Anspruchswebsite programmgesteuert einen neuen Benutzer hinzuzufügen, und hatte dabei allerlei Probleme. Sein erster Versuch, den Benutzer mit „DomäneBenutzername“ der SPRoleAssignment-Klasse hinzuzufügen, hat nicht funktioniert. Dann hat er auf verschiedene Arten versucht, den codierten Anspruchswert für den gewünschten Benutzernamen anzugeben. Dies hat teilweise funktioniert, hatte aber seltsame Seiteneffekte wie z. B. dass der Name doppelt auftrat. Ich konnte zwar nicht alle seine Varianten und Probleme persönlich überprüfen, aber was bei mir beim ersten Versuch funktioniert hat, war die Verwendung der EnsureUser-Methode in SPWeb. Das ist viel einfacher als herumzuprobieren, um die Codierung für einen Kontonamen herauszufinden. Es ist außerdem viel einfacher, weil Sie nur den Kontonamen übergeben müssen und nicht die vier Parameter, die Sie normalerweise beim Hinzufügen eines Benutzers angeben müssen. Mit EnsureUser wird der Name automatisch codiert und der Code viel einfacher.

Der Vollständigkeit halber ein kurzes Beispiel:

using (SPSite theSite = new SPSite("https://foo"))
{
  using (SPWeb theWeb = theSite.OpenWeb())
  {
    SPUser theUser = theWeb.EnsureUser("domainusername");
  }
}

 

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Adding Users Programmatically to A Claims Site in SharePoint 2010.