Как лучше всего использовать Fluent Security для настройки перенаправления SSL в представлениях контроллеров в веб-приложении mvc?
Как вы используете Fluent Security для настройки перенаправления SSL в приложении ASP.net MVC?
Ответы (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