У меня есть приложение .NET MVC (1.0), которое использует ActiveDirectoryMembershipProvider для аутентификации пользователей, и это работает нормально, как есть. После успешной аутентификации я создаю пользовательский профиль в SQL для этого пользователя (имя пользователя AD, адрес электронной почты и т. Д.).
В одной части приложения я отправляю пользователям оповещения по электронной почте и зацикливаюсь на пользователях из локальной таблицы SQL, содержащей имя пользователя AD, упомянутое выше. Перед отправкой оповещения я хотел бы убедиться, что пользователь, которому мы отправляем, все еще является действительным (то есть активным) пользователем в AD. Как я могу проверить это без пароля текущего пользователя в моем цикле?
Я надеялся сделать что-то подобное ...
MembershipUser adUser= Membership.GetUser(userName); //I have the username from the loop
bool isValid = adUser.isValid; //I know this is not a real property
Я знаю, что нет такого свойства, называемого isValid, но кто-нибудь знает, какое свойство мне следует использовать? Если MembershipUser бесполезен, то я предполагаю, что мне нужно написать некоторый код, вызывающий пространство имен System.DirectoryServices.ActiveDirectory? Если это так, какое свойство я должен проверять в AD, чтобы увидеть, является ли пользователь действительным? Под «действительным» я подразумеваю, что пользователь все еще работает в рассматриваемой компании и может выполнить вход через AD. Меня не интересует членство группы в AD.
Спасибо
Mike