In MVC how can I use the controller to render a partial view only for approved users?

前端 未结 3 540
再見小時候
再見小時候 2020-12-11 20:59

In MVC 5 I am attempting to use the controller to render a partial view only if the (Windows Authenticated) user belongs to one or more of a list of Active Directory groups.

3条回答
  •  爱一瞬间的悲伤
    2020-12-11 21:58

    Thanks to @Stephen Muecke and and a commenter whose entry has mysteriously vanished, I have the missing pieces.

    I was able to test this code with several real users and verified the desired behavior happens consistently.

    Controller Block: Main difference: take out authorization and use an if-then block send one of two partial views.

    [ChildActionOnly]                
        public ActionResult MonitorCSU()
        {         
            if (User.IsInRole("DOMAIN\\GroupA")) 
            {
            return PartialView("MonitorCSU");         
            }
            else 
            {
            return PartialView("Unauthorized");
                // this is an empty page
            }
        }
    

    View Block: The key difference is using HTML.Action

    @Html.Action("MonitorCSU")

提交回复
热议问题