0

ポリシー違反が IPolicyViolationHandler で処理される FluentSecurity を使用する mvc3 アプリがあります。

public class DefaultPolicyViolationHandler : IPolicyViolationHandler { public string ViewName = "AccessDenied";

public ActionResult Handle(PolicyViolationException exception)
{

    if (SecurityHelper.UserIsAuthenticated())
    {

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

}

共有ビュー 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 に答える