Как активировать / деактивировать нескольких пользователей в членстве asp.net - PullRequest
0 голосов
/ 13 февраля 2012

Я пытаюсь дать администратору сайта возможность активировать / деактивировать или разблокировать нескольких пользователей, выбрав пользователей и нажав кнопку.

Членство в asp.net не имеет такого метода (насколько я знаю).Я не хочу вызывать UpdateUser () один раз для каждого пользователя.

есть идеи?

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Вы можете использовать следующую логику, однако лучше использовать способный способ, но логика в хранимой процедуре, упомянутой выше, следующая.

UPDATE dbo.aspnet_Membership  
SET IsLockedOut = 0,  
    FailedPasswordAttemptCount = 0,  
    FailedPasswordAttemptWindowStart = CONVERT(datetime, '17540101', 112),
    FailedPasswordAnswerAttemptCount = 0,  
    FailedPasswordAnswerAttemptWindowStart = CONVERT(datetime, '17540101', 112),
    LastLockoutDate = CONVERT(datetime, '17540101', 112 )  
WHERE @UserId IN (YOUR COLLECTED USERID"S WITH COMMA)

Теперь вам нужно построить логику, которая вызывает вышеуказанную логику SP, и этим вы можете добиться цели.

1 голос
/ 13 февраля 2012

В этом случае вам нужно будет создать пользовательскую хранимую процедуру, в которую вы отправите список имен пользователей в формате через запятую и обработаете их на сервере. Это будет немного сложная и уродливая работа, потому что вам также нужно будет отправить имя приложения. Для каждого пользователя, который обрабатывает ваша процедура, вызовите aspnet_Membership_UnlockUser SP, передав ему имя приложения (@ApplicationName) и имя пользователя (@UserName).

Взгляните на логику aspnet_Membership_UnlockUser SP. Возможно, вы сможете найти лучшее решение.

РЕДАКТИРОВАТЬ: Другое решение было бы создать тип через сборку .NET, которая работает как таблица со списком имен пользователей, которые вы передаете в качестве параметра UDF в SqlCommand. На сервере вы можете использовать этот параметр, чтобы либо присоединить его к запросу Jigar, либо к циклу для каждого элемента вашего типа. Это может быть лучшим решением, потому что вы сможете повторно использовать сборку для других подобных сценариев.

...