2016-04-11 14 views
1

少し問題があります。 ログインをクリックした後、ユーザーがロール管理者であることを確認したいと思います。 ログイン時にUserNameを取得して管理者ロールであることを確認してください

if(User.IsInRole("Administrator")) 

ユーザーにそれをやったときに、私は一つの問題が残っている== nullで、私はそれを行うための別の方法を把握することはできません。

私はいくつかのことを試しましたが、実際には何も動作しません。

それはこの

switch (result) 
     { 
      case SignInStatus.Success: 
       //check if user is admin 
       if (Roles.GetRolesForUser().Contains("Administrator")) 
       { 
        return RedirectToAction("Index", "MIS"); 
       } 
       else 
        return View(); 
+0

されていないことを確認しwithingする必要がありますが、あなたは価値がであるものを確認しましたユーザーは渡されていますか? – Izzy

+0

「User.IsInRole( "Admin") 'User = nullの場合 – bfmv991

答えて

1

ないのはなぜあなたはもはやので、ここでHttp Context Userオブジェクトへのアクセス権を取得していることは、回避策

switch (result) 
      { 
       case SignInStatus.Success: 
        //check if user is admin 
        var adminRole = context.Roles.Where(r => r.Name == "Administrator").FirstOrDefault(); 
        var user = context.Users.Where(u => u.UserName == model.Username).FirstOrDefault(); 
        if(user.Roles.Where(r => r.RoleId == adminRole.Id).Count() > 0) 
        { 
         return RedirectToAction("Index", "MIS"); 
        } 
        else 
         return View(); 
関連する問題