2010-09-14 10 views
7

Ich habe die Login-ID dieses Benutzers. Aber im Code möchte ich diesen Login-Namen in SPUser-Objekt konvertieren. Kann ich LoginName (Typ Zeichenfolge) in SPUser konvertieren. Oder gibt es eine Möglichkeit, das Windows-Identitätsbenutzer-Token in SPUser zu konvertieren. Ich füge Benutzer zu einer Spgroup hinzu (also existiert nicht auf der Site). Alles, was ich habe, ist Windows User Token.So erhalten Sie SPUser-Objekt mit Benutzer-ID (Domänenname Benutzer-ID)

Antwort

21

Werfen Sie einen Blick auf SPWeb.EnsureUser. Von MSDN:

"Prüft, ob der angegebene Anmeldename zu einem gültigen Benutzer der Website gehört, und wenn der Anmeldename nicht bereits vorhanden ist, fügt es der Website hinzu."

thusly Gebraucht:

SPUser newUser = SPContext.Current.Web.EnsureUser(@"domain\logonname"); 
+8

mit EnsureUser Vorsicht - es legt einen neuen Benutzer, wenn es stimmt nicht mit dem für die Sie –

+0

suchen Wie kann ich es machen, wenn ich Namen von Benutzern muß, die nicht unbedingt hinzugefügt wurden zur Site, aber sie sind zum Beispiel in ActiveDirectory vorhanden? (und ich brauche nicht, dass sie auf der Website hinzugefügt werden) – rolivares

+0

@rolivares - Sie brauchen nur ihren Anzeigenamen? – CBono

9
SPUser user = SPContext.Current.Web.Users["domain\\login"]; 
+0

ich Benutzer zu einer Gruppe bin hinzufügen. Also, er existiert nicht auf der Website. – sssreddy

+1

so verwenden EnsureUser, wie in CBono Post beschrieben –

Verwandte Themen