да, у вас есть метод формы, подобный:
<form method="post OR get">
</form>
, а также имя элемента, потому что имя элемента используется для публикации значения этого элемента.
Вот ссылка со всей информацией о материале Active Directory...
После наблюдения.NET 1.1, проверьте этот поток: http://forums.asp.net/t/434077.aspx, с помощью lockouttime в фильтре должен все еще добиться цели.
Конкретно в потоке (после того, как большее сообщение кода, которое обеспечивает много синтаксиса):
(&(objectClass=user)(objectCategory=person)(lockoutTime>=1));
Еще одна вещь, оказывается, что при использовании.NET v.1.1, затем S.DS преобразовывает Integer8 в длинное целое правильно для Вас (не работает с 1,0) - что означает, что можно покончить с отражательным кодом (в сообщении):
//use the filter from above
SearchResultCollection src = ds.FindAll();
foreach(SearchResult sr in src)
{
DateTime lockoutTime = DateTime.FromFileTime((long)sr.Properties["lockoutTime][0]);
Response.Output.Write("Locked Out on: {0}", lockoutTime.ToString());
}
Найденный этим, это немного больше, чем я сделал в прошлом (не может найти точные отрывки), хотя ключ делает поиск каталога и ограничивает на основе lockouttime для Вашего пользователя (пользователей), которые возвращаются. Дополнительно для конкретного пользователя, можно ограничить поиск далее использующие дополнительные свойства. Ссылка codeproject выше имеет ту конкретную логику (для ограничения поиска), я верю.
class Lockout : IDisposable
{
DirectoryContext context;
DirectoryEntry root;
DomainPolicy policy;
public Lockout(string domainName)
{
this.context = new DirectoryContext(
DirectoryContextType.Domain,
domainName
);
//get our current domain policy
Domain domain = Domain.GetDomain(this.context);
this.root = domain.GetDirectoryEntry();
this.policy = new DomainPolicy(this.root);
}
public void FindLockedAccounts()
{
//default for when accounts stay locked indefinitely
string qry = "(lockoutTime>=1)";
TimeSpan duration = this.policy.LockoutDuration;
if (duration != TimeSpan.MaxValue)
{
DateTime lockoutThreshold =
DateTime.Now.Subtract(duration);
qry = String.Format(
"(lockoutTime>={0})",
lockoutThreshold.ToFileTime()
);
}
DirectorySearcher ds = new DirectorySearcher(
this.root,
qry
);
using (SearchResultCollection src = ds.FindAll())
{
foreach (SearchResult sr in src)
{
long ticks =
(long)sr.Properties["lockoutTime"][0];
Console.WriteLine(
"{0} locked out at {1}",
sr.Properties["name"][0],
DateTime.FromFileTime(ticks)
);
}
}
}
public void Dispose()
{
if (this.root != null)
{
this.root.Dispose();
}
}
}
Код вытянули из этого сообщения: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/5e0fadc2-f27b-48f6-a6ac-644e12256c67/