Я делаю asp.net, использую FormsAuthentication с провайдером AdMembership.
Мне нужно вручную написать экран «Изменить пароль при следующем входе в систему», потому что он не поддерживается в провайдере.1003 *
Я звоню:
if (Membership.Provider.ChangePassword(cpCv.LoginName, cpCv.OldPassword, cpCv.NewPassword))
, чтобы подтвердить пользователя и сменить пароль (но не снять флажок «при следующем входе в систему»)
Но это всегда не получается, (яПредположим, потому что проверка членства завершается неудачно, когда установлен флаг «Изменить пароль при следующем входе в систему».)
Какой самый простой способ проверки пользователя, поэтому я могу быть уверен, что «старый пароль» и «имя пользователя» совпадаютперед сбросом пароля и снятием флажка «при следующем входе в систему»?
У меня есть работоспособность пароля сброса и флажка сброса, проверка застряла у меня.
Также попробовал этот код, Если флаг Reset имеет значение false, он входит в систему, если true, он не может войти.
DirectoryEntry de = new DirectoryEntry( path, "jcsn\\"+AdUserName, AdPassword );
try
{
//Bind to the native AdsObject to force authentication.
object obj = de.NativeObject;
DirectorySearcher search = new DirectorySearcher( de );
search.Filter = "(SAMAccountName=" + AdUserName + ")";
search.PropertiesToLoad.Add( "cn" );
SearchResult result = search.FindOne();
if ( null == result )
{
return false;
}
}
catch ( Exception ex )
{
throw new Exception( "Error authenticating user. " + ex.Message );
}
Спасибо,
Eric-