2011-07-19 8 views
0

私のアプリケーションには、管理者、ユーザ、スーパーユーザなどの異なるユーザロールがあります。アプリケーションでASP .netメンバーシップ・プロバイダを使用しています。私のmachine.configファイルでは、maxInvalidPasswordAttemptsは5に設定されています。これはすべてのユーザーのデフォルトです。私の問題は、管理者ユーザーであっても、無効なパスワードの最大試行回数は5回であるということです。管理者ユーザーの無効なパスワードの最大試行回数を変更する必要があります。助けてください。特定のユーザロールに対してmaxInvalidPasswordAttemptsを設定するにはどうすればいいですか

答えて

3

デフォルトプロバイダーでは実現できないと思います。 MaxInvalidPasswordAttemptsはデータベースに保存されていないので、私が知る限りです。おそらく、この追加レイヤを実装する派生メンバシッププロバイダを作成することについて考える必要があります。

public class myMembershipProvider : System.Web.Security.SqlMembershipProvider 
{ 

public override int MaxInvalidPasswordAttempts 
{ 
    get 
    { 
     //Check to the role of the user....and pass back the attempts allowed for them 

     if (HttpContext.Current.User.IsInRole(Admin)) 
     { 
      return 9999; whatever... 
     } 
     return base.MaxInvalidPasswordAttempts; 
    } 
} 
} 
+0

@Giko、私の更新された回答を参照してください –

+0

私のアプリケーションで.netログインコントロールを使用しています。この方法をどのように使用するかを指定してください。 –

+0

@ user.netこのクラスを作成し、それをweb.configのMembershipProviderとして定義できるはずです。 'type =" System.Web.Security.SqlMembershipProvider "を新しいカスタムメンバーシッププロバイダの完全修飾名に置き換えます。 –

関連する問題