AdMembership proivder で FormsAuthentication を使用して、asp.net を実行しています。
プロバイダーでネイティブにサポートされていないため、「次回ログオン時にパスワードを変更する」画面を手動で作成する必要があります。
電話する :
if (Membership.Provider.ChangePassword(cpCv.LoginName, cpCv.OldPassword, cpCv.NewPassword))
ユーザーを検証し、パスワードを変更します (ただし、「次回ログオン時フラグ」はクリアしません)。
ただし、常に失敗します(「次回ログオン時にパスワードを変更する」フラグが設定されていると、メンバーシップの検証が失敗すると思います。)
パスワードをリセットして「次回ログオン時」フラグをクリアする前に、「古いパスワード」と「ユーザー名」が一致していることを確認できるように、ユーザーを検証する最も簡単な方法は何ですか?
私はresetpasswordとclear flagの機能を持っています.それは私を行き詰まらせた検証です.
このコードも試してみました。リセットフラグが 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 );
}
ありがとう、
エリック-