2010-09-14 3 views
7

У меня есть идентификатор входа этого пользователя. Но в коде я хочу преобразовать это имя входа в SPUser Object. Могу ли я конвертировать LoginName (тип string) в SPUser. Или есть способ конвертировать токен пользователя удостоверения пользователя Windows в SPUser. Я добавляю пользователей в spgroup (так не существует на сайте). Все, что у меня есть, - это токены пользователей Windows.Как получить объект SPUser с использованием идентификатора пользователя (имя_домена userid)

ответ

21

Посмотрите на SPWeb.EnsureUser. От MSDN:

«Проверяет, принадлежит ли указанное имя входа действующему пользователю веб-сайта, и если имя пользователя еще не существует, добавляет его на веб-сайт».

Используется таким образом:

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

Позаботьтесь с EnsureUser - он создает нового пользователя, если он не находит тот, который вы ищете –

+0

Как это сделать, если мне нужно имя от пользователей, которые не обязательно были добавлены на сайт, но они присутствуют в ActiveDirectory, например? (и мне не нужно, чтобы они были добавлены на сайт) – rolivares

+0

@rolivares - Вам просто нужно их отображаемое имя? – CBono

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

Я добавление пользователей в группу. Таким образом, его доза не существует на сайте. – sssreddy

+1

поэтому используйте EnsureUser, как описано в CBono post –