MVC 6 (ASP.NET Core 1.0) несколько отличается от способа регистрации фильтров:
Startup.cs - AddMvc с фильтром для RequireHttpsAttribute:
public void ConfigureServices(IServiceCollection services)
{
// TODO: Register other services
services.AddMvc(options =>
{
options.Filters.Add(typeof(RequireHttpsAttribute));
});
}
Объяснение проектных решений:
- Используйте фильтр в Startup.cs для глобальной настройки (поскольку мы хотим, чтобы это применялось везде). Стартап должен отвечать за регистрацию и настройку всех глобальных правил. Если в вашей компании работает новый разработчик, она ожидает найти глобальную настройку в Startup.cs.
- Используйте логику RequireHttpsAttribute, поскольку она проверена (Microsoft). Никогда не используйте «волшебные» строки, такие как «http: //» и «https: //», если этого можно избежать, повторно используя компонент Microsoft, созданный для обеспечения той же логики.
Если вы запускаете свой веб-сайт MVC на локальном хосте без SSL:
- http: // localhost: 1337 / (без SSL)
- https: // localhost: 1337 / (SSL)
Рассмотрите возможность просмотра https://stackoverflow.com/a/38244992/1095493.
Примечание.
В качестве альтернативы мы могли бы создать «класс BaseController: Controller» и сделать все наши контроллеры унаследованными от «BaseController» (вместо Controller). Тогда нам нужно только установить глобальное место для атрибута 1 (и не нужно регистрировать фильтр в Startup.cs).
Некоторые люди предпочитают стиль атрибута.
Пример использования:
[RequireHttpsAttribute]
public class BaseController : Controller
{
// Maybe you have other shared controller logic..
}
public class HomeController : BaseController
{
// Add endpoints (GET / POST) for Home controller
}
person
Nick Niebling
schedule
07.07.2016