Как вы используете Fluent Security для настройки перенаправления SSL в приложении ASP.net MVC?

Как лучше всего использовать Fluent Security для настройки перенаправления SSL в представлениях контроллеров в веб-приложении mvc?


person Reaction21    schedule 17.02.2013    source источник


Ответы (1)


Лучший способ — создать пользовательскую политику и обработчик политики. Вот как я его завершил:

Моя пользовательская политика

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. Но как только они верны, вы должны увидеть, что этот код работает отлично!

person Reaction21    schedule 17.02.2013