Как определить, является ли SPUser учетной записью Active Directory
Я работаю над проектом, в котором клиент хочет ограничить содержание только пользователями Active Directory. Есть ли способ определить, что SPUser - это пользователь AD, которому не хватает парсинга строки имени пользователя для домена (или что-то в этом роде). Что-то вроде SPUser.IsADUser было бы здорово.
Редактировать Это, кажется, работает, но я не уверен, что это достаточно надежно? Для этого варианта использования достаточно указать, что пользователь является пользователем Windows (нет учетных записей локальной системы)
SPUser user = SPContext.Current.Web.CurrentUser;
string userName = user.LoginName.Substring(user.LoginName.IndexOf('|') + 1);
SPPrincipalInfo info = SPUtility.ResolveWindowsPrincipal(SPContext.Current.Site.WebApplication, userName, SPPrincipalType.User, false);
if(info != null){
//THIS IS A WINDOWS ACCOUNT
}
1 ответ
По моему опыту, для этой цели гораздо лучше использовать аудиторию. Затем вы можете легко обрезать любую веб-часть, используя свойство "Аудитория". Вы можете прочитать о зрителях здесь. Конечно, это будет работать, только если у вас настроена синхронизация профилей пользователей.