0

ユーザーがアカウントを作成したら、プロファイルを作成して、レターに使用される情報を送信する必要があります。ユーザーのプロファイルからの情報を必要とする2つのコントローラーがあります。

ユーザーがアクションメソッドにアクセスできるようにする前に、ユーザーが既にプロファイルを作成しているかどうかを確認する属性を作成しようとしています。そうでない場合は、ユーザーをプロフィール ページにリダイレクトする必要があります。

public class NotAuthorizedWithoutProfileAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        var userName = httpContext.Profile.UserName;
        var repository = new OWRepository();
        var userInfo = repository.GetUserInfo(userName);

        if (userInfo == null)
            return false;
        else
            return true;
    }
}

私が抱えている問題は、userName、つまり次の行に関するものです

var userName = httpContext.Profile.UserName;

nullを与えるのはなぜですか?それでも、これはログに記録されたユーザーの名前を取得する方法です。

4

1 に答える 1

1

あなたのプロファイル構成が何であるかはわかりませんが、HttpContextBase.User.Identity.Nameユーザー名を取得するために使用するのが最も安全です。

また、クラス名を のように短くても意味のあるものに変更することを検討してくださいRequireProfileAttribute

于 2013-04-09T06:49:20.483 に答える