1

ネットワークですでに使用されているSQLデータベースを使用したいので、オーバーライドするコードを記述しましたValidateUser()

public override bool ValidateUser(string username, string password)
{
    return true;
}

理論をテストするためだけに、今のところデータベースをチェックせずにtrueを返すようにこれを設定しました。

ユーザー名情報を保存して後で取得できるようにするなど、他の機能と適切に連携するために必要なのはそれだけですか、それとも単にこの情報をセッション変数に保存するだけですか?

この関数がtrueを返すと、ユーザーは効果的に認証されますか?

4

1 に答える 1

1

から既に継承している場合は、すべてのメソッドをオーバーライドまたは実装する必要はありませんSqlmembershipProvider

オーバーライドする場合ValidateUser(たとえば、無効なログイン試行をログに記録するため)、ユーザーを手動で保存する必要はなく (ユーザーは DB に保存され、Cookie によって識別されます) Membership.GetUser、.

例えば:

public override bool ValidateUser(string username, string password)
{
    // check in database with SqlmembershipProvider
    bool isValid = base.ValidateUser(username, password);
    // get user from database
    var user = Membership.GetUser(username);
    if(isValid)
    {
        // ...
    }
    else{
        // log wrong attempt if you want
    }
    return isValid;
}
于 2012-08-23T14:56:47.013 に答える