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