Requirehttps для РАЗРАБОТКИ и LIVE сайтов

У меня есть веб-сайт ASP .NET MVC4, который я должен сначала поставить на место РАЗРАБОТКИ для тестирования. И у сайта разработки нет SSL, а у LIVE есть.

Что ж. Я должен использовать [Requirehttps] внутри 20 контроллеров, и я не могу комментировать это каждый раз, когда я тестирую его на веб-сайте DEV.

Есть ли какой-либо подход к настройке [Requirehttps], основанный хотя бы на некоторых настройках web.config, или, возможно, есть другой подход? Я имею в виду, я не люблю комментировать около 20 [Requirehttps] каждый раз, когда у меня есть публиковать сайт в прямом эфире.

Любая подсказка?

2 ответа

Решение

Переопределите RequireHttpsAttribute

web.config

<appSettings>
  <add key="SSL" value="false" />
</appSettings>

MyHttpsAttribute.cs

public class MyHttpsAttribute : RequireHttpsAttribute, IAuthorizationFilter
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        if (bool.Parse(AppSettings["SSL"]) != true) {
            return;
        }
        base.OnAuthorization(filterContext);
    }
}

BaseController

[MyHttps]
public abstract class BaseController : Controller
{
    ...
}

Если вы переключаетесь между сборками отладки / выпуска, вы можете сделать это в своем коде:

#if !DEBUG
    [RequireHttps]
#endif
Другие вопросы по тегам