0

我有一个使用 FluentSecurity 的 mvc3 应用程序,其中使用 IPolicyViolationHandler 处理策略违规

公共类 DefaultPolicyViolationHandler : IPolicyViolationHandler { 公共字符串 ViewName = "AccessDenied";

public ActionResult Handle(PolicyViolationException exception)
{

    if (SecurityHelper.UserIsAuthenticated())
    {

        return new ViewResult { ViewName = ViewName };
    }
    else
    {
        return new RedirectResult(LoginURL);
    }
}

}

现在它会打开一个新页面,其中包含我的 Shared View AccessDenied。我的问题是如何打开一个弹出窗口而不是一个新页面来显示“访问被拒绝消息”。谢谢

4

1 回答 1

0

取而代之的是 RedirectResult,您可以使用如下模型返回 PartialView。

在您的控制器中......

Model.Test M = new Model.Test();
M.Access = "Denied";
return PartialView("ViewName",M);

在你看来……

 @model eStorage.Models.Test

 <input type="hidden" id="hdnAccess" value ="@Model.Access" />

<script>
  var Type = $("#hdnAccess").val();
  if(Type == "Denied")
  {
    //window.open    code here
    // or  
    // Use Jquery Dialog
   }

 </script>
于 2012-12-07T13:34:27.953 回答