Как мне сделать OPPOSITE из [RequireHttps (Redirect = true)] в ASP.NET MVC - PullRequest
8 голосов
/ 21 июля 2009

Я знаю простой способ получить доступ к странице SSL в ASP.NET MVC - через атрибут [RequireSSL] , но я немного запутался в том, как лучше сделать обратное.

У меня много ссылок на моем сайте в строке заголовка, и для большинства этих ссылок не требуется SSL, и я не хочу использовать SSL.

Проект futures позволяет очень легко автоматически перенаправить на страницу SSL с [RequireSSL(Redirect=true)], но, похоже, он не позволяет легко выйти из этого контекста и автоматически перенаправить обратно на http.

Чего мне не хватает?

Ответы [ 3 ]

4 голосов
/ 21 июля 2009

Вы ничего не упускаете; для этого нет готовых функциональных возможностей. Вы можете легко создать свой собственный файл, взяв источник RequireSslAttribute и изменив его.

1 голос
/ 06 ноября 2009

Ответ от дурацкого вопроса в другом месте:

Как выйти из режима https в http в mpc asp.net.

ПРЕДОСТЕРЕЖЕНИЕ : Если вы решите использовать этот подход, ваш файл cookie для проверки подлинности будет отправлен поверх простого текста после переключения обратно на HTTP и потенциально может быть украден и использован кем-то другим. Смотрите это . Другими словами - если вы используете это для банковского сайта, вам необходимо убедиться, что переключение на http first приведет к выходу пользователя из системы.

public class DoesNotRequireSSL: ActionFilterAttribute 
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        {
                var request = filterContext.HttpContext.Request;
                var response = filterContext.HttpContext.Response;

                if (request.IsSecureConnection && !request.IsLocal) 
                {
                string redirectUrl = request.Url.ToString().Replace("https:", "http:");
                response.Redirect(redirectUrl);
                }
                base.OnActionExecuting(filterContext);
        }
    }
0 голосов
/ 06 ноября 2009

Это стоит прочитать (особенно для того, чтобы понять последствия небрежного переключения на http с https:

для безопасности.

Частично SSL-защищенные веб-приложения с ASP.NET - не относится к MVC, но имеет отношение к безопасности

Частичный SSL-сайт с ASP.NET MVC - MVC дружественный

Это довольно сложный вопрос в целом. Все еще не нашли истинного решения всего, что я хочу сделать, но думал, что эти статьи могут помочь другим.

...