Я пытаюсь показать, заблокирована ли учетная запись пользователя в активном каталоге или сейчас. У меня есть код, работающий сам по себе, но я пытаюсь добавить его к существующему представлению, но я не уверен, как это сделать: ниже приводится описание того, что я пытаюсь, а также 2 отдельных кода.
Спасибо!
Session["Locked"] = Convert.ToBoolean(directoryEntry.InvokeGet("IsAccountLocked"));
Original:
public static List<User> GetallAdUsers()
{
List<User> AdUsers = new List<User>();
var context = new PrincipalContext(ContextType.Domain, "domain.local");
UserPrincipal userPrin = new UserPrincipal(context);
userPrin.Name = "*";
var searcher = new System.DirectoryServices.AccountManagement.PrincipalSearcher();
searcher.QueryFilter = userPrin;
var results = searcher.FindAll();
foreach (Principal p in results)
{
AdUsers.Add(new User
{
DisplayName = p.UserPrincipalName,
Samaccountname = p.SamAccountName
});
}
return AdUsers;
}
I am trying to add it like this:
public static List<User> GetallAdUsers()
{
List<User> AdUsers = new List<User>();
var context = new PrincipalContext(ContextType.Domain, "domain.local");
UserPrincipal userPrin = new UserPrincipal(context);
userPrin.Name = "*";
var searcher = new System.DirectoryServices.AccountManagement.PrincipalSearcher();
searcher.QueryFilter = userPrin;
var results = searcher.FindAll();
foreach (Principal p in results)
{
var user = UserPrincipal.FindByIdentity(context, p.UserPrincipalName);
DirectoryEntry directoryEntry = user.GetUnderlyingObject() as DirectoryEntry;
var isLocked = Convert.ToBoolean(directoryEntry.InvokeGet("IsAccountLocked"));
AdUsers.Add(new User
{
DisplayName = p.UserPrincipalName,
Samaccountname = p.SamAccountName,
Locked = isLocked
});
}
return AdUsers;
}