2011-08-07 7 views
0

私のアプリケーションでは、ユーザーがログインするときに、自分に割り当てられている役割があるかどうか、そして役割に基本的な役割が割り当てられていないかどうかを確認する必要があります。また、彼らの役割に基づいて、それらを特定のページにリダイレクトする必要があります。しかし、ユーザーの役割を確認/設定する方法を見つけることができません。サインインした直後にユーザーの役割をチェック/割り当てする方法は?

[HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
       { 
       if (MembershipService.ValidateUser(model.UserName, model.Password)) 
       { 
         FormsService.SignIn(model.UserName, model.RememberMe); 
        if(User.IsInRole("User")) 
//This won't work becauser User is not populated yet. It will be populated only on next request for some reason that has to do with setting cookies 
    } 

これを解決する方法はありますか?

答えて

0

どうやらRoles.IsUserInRole方法は、ユーザー名などの文字列を渡すことができますので、Userオブジェクトを呼び出すことなく、ユーザーのメンバーシップをチェックすることが可能になります。

0

このようなものは何ですか?

if(User.IsInRole(model.UserName, "User")) 
+0

問題は、ユーザーがサインインしたときにそのようなものが動作しないことです。ユーザーオブジェクトが空です。次の要求時にのみデータが入力されます。私は自分のコードブロックのインラインコメントでそれを説明しました。 – m0s

+0

ああ、私はこの答えに非常に残念です!私はちょうどあなたがRoleProviderを直接呼び出すことができるように書いたがっています.Roleの代わりにUserとタイプされた、あなたの答えと誤植のような2つのパラメータがあります。男、申し訳ありません... – IceN

関連する問題