2016-01-26 30 views
-2

我有這樣的代碼模型:如何使用列表<String>在控制器MVC

public static List<String> GetListRole(string actName) 
    { 
     List<String> lstRole = new List<String>(); 
     ToleranceEntities db = new ToleranceEntities(); 
     int roleID = (int)GetRoleIdbyUserName(HttpContext.Current.User.Identity.Name); 
     var lstActionbyRole = Tolerance.ModelsAdmin.Utinity.GetActionbyRoleID(roleID); 
     var lstRolebyAction = GetRoleByAction(actName); 
     foreach (var lstAc in lstActionbyRole) 
     { 
      if (GetActionNameByID((int)@lstAc.ActionID).Equals(actName)) 
      { 
       lstRole.Add(GetRoleNameByID((int)@lstAc.RoleID)); 
      } 
      else 
      { 
       foreach(var i in lstRolebyAction) 
       { 
        lstRole.Add(GetRoleNameByID((int)@i.RoleID)); 
       } 

       break; 
      } 
     } 
     return lstRole; 
    } 

,我想返回角色名稱把它嗎?在[授權(角色=「?」)]任何ActionResult功能之前檢查此登錄帳戶是否可以使用此操作。 如何在控制器中調用List?我應該做什麼或者我的代碼必須改變什麼。謝謝!!!

+0

是否要將列表作爲參數傳遞給控制器​​? – Vini

+0

@Vini:是的。並把它放在授權[Role =「list」] –

回答

0

你只需要在Global.asax的包括這種方法...

protected void Application_AuthenticateRequest(object sender, EventArgs args) 
    { 
     if (Context.User != null) 
     { 
      IEnumerable<Role> roles = new UsersService.UsersClient().GetUserRoles(
                Context.User.Identity.Name); 



      GenericPrincipal gp = new GenericPrincipal(roles); 
      Context.User = gp; 
     } 
    } 

,然後在控制器的操作使用

[Authorize(Roles = " Admin")] 

。 希望這會幫助你。

+0

我認爲這不是我的問題。我得到一個列表返回一個角色列表,我不知道如何把這個列表「[授權(角色=」列表角色我想把它「)]」。 無論如何,非常感謝你! –

相關問題