Итак, я опубликовал то же самое на форуме Elastic beats и получил решение. Вы можете найти то же самое здесь
Согласно их предложению, отключение службы Audit позволило бы захватывать события аудита в Audibeat. Я попробовал то же самое, и это сработало для меня. Но я не уверен в последствиях отключения аудита. Так что я мог бы переключиться на решение на основе Filebeat.
Scott Mitchell записал превосходный ряд учебных руководств на сайте ASP.NET. Эта ссылка включает информацию о создании пользовательского поставщика и обсуждает логику блокировки:
http://www.asp.net/LEARN/security/tutorial-06-cs.aspx
Нет также никакого встроенного метода для разблокирования учетных записей (т.е. необходимо сделать это через инструменты базы данных при использовании чего-то подобного SqlMembershipProvider). Scott также написал статью о создании UI для управления этим, которое можно найти здесь:
http://www.asp.net/LEARN/security/tutorial-14-vb.aspx
Я на самом деле рекомендую читать целый ряд. Scott превосходный коммуникатор.
Я надеюсь, что это помогает.
В Вашем пользовательском поставщике членства необходимо реализовать функцию ValidateUser. Там Вы не только проверяете, допустимы ли имя пользователя и пароль, но Вы также получаете количество попыток неверного пароля и т.д. от Вашего хранилища данных. Если имя пользователя/пароль допустимо, сбросьте количество попытки пароля, otherelse увеличивают количество попытки. SqlMembershipProvider также хранит дату и время LastAttempt, таким образом, Вы не можете "в лоб" Вы путь в том, потому что Нельзя попытаться в течение определенного периода времени.
Это - что-то, что необходимо было бы записать сами.
Схема базы данных по умолчанию имеет следующие столбцы в aspnet_Membership таблице:
IsLockedOut
FailedPasswordAttemptCount
FailedPasswordAttemptWindowStart
Количество попытки будет увеличено на каждой неудачной попытке в окне попытки, и время первой неудачной попытки хранится в начальном столбце окна, после того как FailedPasswordAttemptCount равняется maxInvalidPasswordAttempts из конфигурации, IsLockedOut установлен.
Как Michiel заявляет, Ваш метод ValidateUser должен будет затем проверить эти значения на основе настроек в конфигурации поставщика - по умолчанию это:
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
После того как у пользователя были максимальные попытки входа в систему, необходимо будет удостовериться установку MembershipUser. IsLockedOut установлен от Вашего поставщика - можно затем проверить, что значение и ведет себя соответственно - при использовании Управления входом в систему по умолчанию это значение будет, вероятно, уже проверено на Вас.
реплицируйте условия, которые приводят к блокировке (слишком много плохого входа в систему). Поскольку поставщики членства каждый раз совершают поездку на их бэкэнду, разумно ограничить этот подход к провайдерам с разумным количеством maxinvalidPasswordswordateSts.
if (0 < Membership.MaxInvalidPasswordAttempts && Membership.MaxInvalidPasswordAttempts < 100)
{
for(int i = 0; i <= Membership.MaxInvalidPasswordAttempts; i++)
{
Membership.ValidateUser(userName, "jfdlsjflksjlkfjsdlkfjsdl");
}
}