Как проверить имя пользователя / stourceName, под которым работает код?
-
10-12-2019 - |
Вопрос
Мы хотим, чтобы кусок кода, который мы можем вставить в код позади, и получите имя пользователя, под которым код выполняется для: - (обычно .NET CODE запускается в соответствии с пулом приложения)
-
Таймер задания.
-
приемник событий.
-
webpart. Страница приложений
-
.
-
Управление пользователя
-
jsom
Затем мы хотим использовать RWEP и снова проверять, какой код имени пользователя работает под.
Какой фрагмент мы используем?
<Сильное> Обновление
Я не хочу код, который дает мне имя пользователя зарегистрированным пользователем. Я хочу код, который даст мне учетную запись, под которым код будет запущен.
<Сильное> Обновление
для страницы приложения:
.SPUser user1 = SPContext.Current.Web.CurrentUser; string userName1 = user1.Name;
дает значение как: зарегистрировано в имене пользователя.
.SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(idd)) { using (SPWeb rootWeb = site.OpenWeb()) { SPUser user2 = SPContext.Current.Web.CurrentUser; string userName2 = user2.Name; } } });
дает значение как: зарегистрировано имя пользователя.
.var User = System.Security.Principal.WindowsIdentity.GetCurrent().User; var UserName = User.Translate(typeof(System.Security.Principal.NTAccount)).Value;
дает значение как: NT авторитет \ IUSR
.SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(idd)) { using (SPWeb rootWeb = site.OpenWeb()) { var User12 = System.Security.Principal.WindowsIdentity.GetCurrent().User; var UserName12 = User12.Translate(typeof(System.Security.Principal.NTAccount)).Value; } } });
дает значение как: servername \ spadminaccountname
<Сильное> Обновление
(в нашем случае сайт coll. Имя пользователя admin так же, как и имя пользователя apppool веб-приложения, поэтому какую учетную запись это действительно?)
1) Можем ли мы сделать вывод, что учетные данные, в соответствии с которыми работает код - это авторитет NT \ IUSR ', и если мы используем RWEP, то пользователь «WebApp / SiteCol admin admin acount»? Например, предположим, что мы обращаемся к файлу на сервере, то приведенные выше 2 учетных записей будут использоваться для доступа к файлу, а не учетной записи в системе в системе пользователя.
2) Какой аккаунт используется при доступе ресурсов SharePoint? Это один из 2 выше или зарегистрирован в учетных данных пользователя?
Решение
Notvonkaiser В этом случае правильно:
1 работает под учетной записью фермы, и все остальные подходят в систему в учетной записи пользователя!
Зарегистрированные в учетной записи пользователя вызовет учетную запись NT / аутентифицированной учетной записи на сервере, что он / она имеет аутентификацию на сервере ToDo, что он запрашивает! Если это имеет смысл;)
Подумайте о NT / аутентификацию, как будто вы физически войдите на сервер toDo конкретная задача, такая как вы на вашем настольном компьютере, когда вы включите машину в Windows Logonto!
Так что сделать это понятно:
2-6 прогон в соответствии с током, зарегистрированным в учетной записи пользователя, которая имеет аутентификацию NT (разрешено доступу на любой ресурс)
Теперь говорите это, есть еще один фактор, и который имеет TOO с вашей политикой Web.config и CAS (политика безопасности доступа кода), в зависимости от того, что вы устанавливаете (полный, частичный, низкий) Определите доступ к вам доступе к ресурсам в соответствии с текущим вошедшим в систему!
Я буду в пределах w3wp.exe (например, код .cs (внутри сборки)) ... Это запускается под учетной записью пула приложения .. Но это не будет выполняться, если зарегистрированная войти в пользователь не является частью «NT Vaily \ IUSR».Это не один или другой, больше похоже на одновременно одновременно.с точки зрения развертывания, единственные различия между полноправным доверием Модель выполнения и модель выполнения BIN / CAS - это место, где Вы развертываете ваши сборки и политики безопасности доступа кода связано с этим местоположением. В обоих случаях любые некомпонентные предметы, такие как файлы разметки ASP.NET, файлы XML или файлы ресурсов, являются Обычно развернут до корня SharePoint на каждом веб-интерфейсе сервер. Если вы хотите развернуть решение фермы, используя любой из фермы Модели выполнения решения, вы должны иметь доступ к файлу сервера Система и быть членом группы безопасности администраторов фермы.
http://msdn.microsoft.com/en-us/library/ ff798412.aspx
Большинство кода выполняется под текущим войти в учетной записи пользователя .... Если вам не повторяют повторение отправятся, чем что-то еще!
Теперь к вопросу, который я верю, это что-то более сложное и глубже, я верю, что твой ищет это, имеет Todo с рабочим процессом!
Итак, вы войти в машину -> Goto SharePoint Site, который аутентифицирует свою учетную запись (аутентификация NT) ->, чем вы выполняете работу, которая работает под рабочим процессом W3WP.EXE, и я думаю, что это то, что ваше направление?
Рабочий процесс - код пользовательского режима, роль которого является обработка запросов, такие как обработка запросов для возврата статической страницы, вызывая ISAPI Расширение или фильтр или запуск общего интерфейса шлюза (CGI) обработчик.
В режимах изоляции приложений работник контролируется работник по сервису WWW. Тем не менее, в режиме изоляции рабочего процесса, Рабочий процесс работает как исполняемый файл с именем w3wp.exe, а в IIS 5.0 Режим изоляции, рабочий процесс размещен Intinfo.exe. Рисунок 2.2, который изображает архитектуру для режима изоляции IIS 5.0, использует пунктирную линию, чтобы предложить отношение между рабочим процессом и Услуги www.
Рабочие процессы используют http.sys, чтобы получать запросы и отправить Ответы с помощью HTTP. Рабочие процессы также запускают код приложения, такие как ASP.NET приложения и веб-сервисы XML. Вы можете настроить IIS, чтобы запустить несколько рабочих процессов, которые подают другое приложение Бассейны одновременно. Этот дизайн отделяет приложения по процессу границы и помогают достичь максимальной надежности веб-сервера.
По умолчанию рабочие процессы в рабочей процессе изоляции режима режима под учетной записью сетевой службы, которая имеет самую сильную безопасность (наименее доступ) совместимо с функциональностью, которая требуется.
Так что рабочий процесс IIS будет выполнен в нижней части кода, но для этого нужно сделать это в первую очередь, вы должны быть аутентифицированы недоверительными!
Следующая ссылка показывает лучшее понимание!
http://msdn.microsoft.com/en-us/library/ ff798428.aspx
Редактировать
1) Можем ли мы сделать вывод, что учетные данные, под которыми работает код «NT авторитет \ IUSR», и если мы используем RWEP, то пользователь 'webapp / sitecol admin admin acount "? Например, предположим, что мы Доступ к файлу на сервере, то приведенные выше 2 учетных записей будут использоваться Чтобы получить доступ к файлу, а не учетной записью в системе в системе пользователя.
Хорошо, я думаю, что вы запутались?
Для этого есть два этапа .... Пользователь входит в машину Да? Этот пользователь имеет доступ и является частью «NT Vaily \ IUSR», чтобы он мог получить доступ к конкретным ресурсам, которые требуют, чтобы вы были «NT авторитет \ IUSR» в пределах SharePoint ..... теперь запущенный код на бэкэнде сервера W
Вы знаете, что вы хотите, чтобы вы использовали OveriousLT;) Но узнать W3WP.exe, вам нужно перейти к серверу и GoTo Tast Manager, посмотрите на процессы и найдите W3WP.exe ... Вы должны увидеть столбец рядомДля него с именем пользователя, которое будет учетной записью пула веб-приложения.
2) Какой аккаунт используется при доступе ресурсов SharePoint?Это Один из 2 выше или зарегистрированных пользователей учетных данных?
Ресурсы SharePoint доступны зарегистрированным пользователем.так же, как указано выше.
Другие советы
1 всегда следует работать под учетной записью фермы.
для 2, 3, 4 и 5, вы должны быть в состоянии сделать эту информацию, используя этот код:
SPUser user = SPContext.Current.Web.CurrentUser;
string userName = user.Name; //you can also call user.Email here
.
Обратите внимание, что это будет работать не правильно, если у вас есть блок делегата «RunwithelevilevileSPrivileges». Скорее, если вы назовете это в блоке делегата, вы просто получите имя учетной записи, которая выполняет код. Если вам нужно предоставить имя пользователя в этом случае, вызовите объект «SPContext» до или после запуска блока делегата. Вы не сможете передать объект в блок делегата напрямую, но вы должны быть в состоянии извлечь то, что вам нужно в строки или что у вас и отправим их в.