Я долго ищу, как определить разрешенные часы входа в систему для группы, как это можно сделать с пользователем на вкладке учетной записи в Active Directory.
У меня уже есть класс в c #, который может делать запросы, чтобы возвращать список всех разрешенных часов пользователя с помощью свойств 'logonhours'.
public byte[] GetLogonHours(string userName, string password, string path)
{
DirectoryEntry entry = this.GetUserAccount(userName, path);
return (byte[])entry.Properties["logonHours"].Value;
}
public DirectoryEntry GetUserAccount(string username, string path)
{
using (DirectoryEntry objRootEntry = new DirectoryEntry(path))
{
using (DirectorySearcher objAdSearcher = new DirectorySearcher(objRootEntry))
{
objAdSearcher.Filter = "(&(objectClass=user)(samAccountName=" + username + "))";
SearchResult objResult = objAdSearcher.FindOne();
if (objResult != null)
{
return objResult.GetDirectoryEntry();
}
}
}
return null;
}
Я использовал этот пост, чтобы понять, как я могу запросить часы входа в систему:
http://anlai.wordpress.com/2010/09/07/active-directory-permitted-logon-times-with-c-net-3-5-using-system-directoryservices-accountmanagement/
Важно понимать, что я не хочу, чтобы функция знала, когда в последний раз был зарегистрирован пользователь. То, что у меня есть, это функция, которая предотвращает вход пользователя в некоторые моменты.
Мне нужна функция, которая может применять часы входа в систему для группы пользователей, и я могу запросить Active Directory с помощью c #, чтобы получить информацию о часах входа в систему.
Большое спасибо.