Если вы используете ASP.NET MVC 2 Preview 2 или выше , теперь вы можете просто использовать:
[RequireHttps]
public ActionResult Login()
{
return View();
}
Хотя параметр порядка стоит отметить, как упоминается здесь .
Некоторые расширения ActionLink: http://www.squaredroot.com/post/2008/06/11/MVC-and-SSL.aspx Или атрибут действия контроллера, который перенаправляет к https:// http://forums.asp.net/p/1260198/2358380.aspx#2358380
Вот сообщение в блоге Пабло М. Сибрано за январь 2009 года, в котором собрана пара методы, включая HttpModule и методы расширения.
Вот сообщение в блоге Адама Сальво , в котором используется ActionFilter.
MVCFutures имеет атрибут 'RequireSSL'.
(спасибо Адаму за указание на в обновленном сообщении в блоге)
Просто примените его к своему action с 'Redirect = true', если вы хотите, чтобы запрос http: // автоматически стал https: //:
[RequireSsl(Redirect = true)]
Вот недавнее сообщение Дэна Валина по этому поводу:
http://weblogs.asp.net/dwahlin/archive/2009/08/25/requiring-ssl-for-asp -net-mvc-controllers.aspx
Он использует атрибут ActionFilter.
Как Амадьер написал , [RequireHttps] отлично работает в MVC 2 для ввода HTTPS. Но если вы хотите использовать HTTPS только для некоторых страниц, как вы сказали, MVC 2 не понравится вам - как только он переключает пользователя на HTTPS, они застревают там, пока вы вручную не перенаправите их.
Подход, который я использовал, заключается в использовании другого настраиваемого атрибута [ExitHttpsIfNotRequired]. При подключении к контроллеру или действию он будет перенаправлен на HTTP, если:
Это слишком велико для публикации здесь, но вы можете увидеть код здесь плюс некоторые дополнительные сведения.
Это не обязательно специфично для MVC, но это решение работает и для ASP.NET WebForms, и для MVC:
http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx
Я использую это уже несколько лет, и мне нравится разделение задач и управление через файл web.config.