1

Fluent Security を使用して、mvc Web アプリ内のコントローラーのビューで SSL リダイレクトをセットアップする最良の方法は何ですか?

4

1 に答える 1

2

最善の方法は、カスタム ポリシーとポリシー ハンドラーを作成することです。これが私がそれを完成させた方法です:

私のカスタム ポリシー

public class RequireSslPolicy : ISecurityPolicy
{
    public PolicyResult Enforce(ISecurityContext context)
    {
        var req = HttpContext.Current.Request;
        if (!req.IsSecureConnection && !req.IsLocal)
            return PolicyResult.CreateFailureResult(this, "A Secure Connection is Required.");
        return PolicyResult.CreateSuccessResult(this);
    }
}

私のカスタム ポリシー ハンドラ

public class RequireSslPolicyViolationHandler : IPolicyViolationHandler
{
    public ActionResult Handle(PolicyViolationException exception)
    {
        var req = HttpContext.Current.Request;
        var url = req.Url.ToString().ToLower().Replace("http:", "https:");
        return new RedirectResult(url);
    }
}

ポリシーをコントローラーまたはコントローラー内のアクションに追加するコード

c.For<AccountController>().AddPolicy<RequireSslPolicy>();

そして、それだけです!もちろん、依存性注入を正しく構成し、Fluent Security の命名規則に従っていることを確認する必要があります。しかし、それらが正しければ、このコードが完全に機能することがわかるはずです!

于 2013-02-17T22:35:44.780 に答える