MVC 6 (ASP.NET Core 1.0) filtrlarni ro'yxatdan o'tkazishda biroz farq qiladi:
Startup.cs - RequireHttpsAttribute:
public void ConfigureServices(IServiceCollection services)
{
// TODO: Register other services
services.AddMvc(options =>
{
options.Filters.Add(typeof(RequireHttpsAttribute));
});
}
Dizayn qarorlari tushuntirildi:
- Global sozlash uchun Startup.cs da filtrdan foydalaning (chunki bu hamma joyda qo‘llanilishini xohlaymiz). Startap barcha global qoidalarni ro'yxatdan o'tkazish va o'rnatish uchun javobgar bo'lishi kerak. Agar sizning kompaniyangiz yangi ishlab chiquvchini ish bilan ta'minlasa, u Startup.cs da global sozlashni topishini kutadi.
- RequireHttpsAttribute mantiqidan foydalaning, chunki u tasdiqlangan (Microsoft tomonidan). Hech qachon "http://" va "https://" kabi "sehrli" satrlardan foydalanmang, agar bir xil mantiqni ta'minlash uchun yaratilgan Microsoft komponentini qayta ishlatish orqali oldini olish mumkin.
Agar siz MVC veb-saytingizni SSL holda localhost-da ishlayotgan bo'lsangiz:
- http://localhost:1337/ (SSL yo'q)
- https://localhost:1337/ (SSL)
https://stackoverflow.com/a/38244992/1095493 ko‘rib chiqing.
Eslatma:
alternativ sifatida biz "klass BaseController : Controller" ni yaratishimiz va barcha kontrollerlarimizni "BaseController" dan (Controller o'rniga) meros qilib olishimiz mumkin. Keyin biz faqat atribut 1 global joyni o'rnatishimiz kerak (va filtrni Startup.cs da ro'yxatdan o'tkazish shart emas).
Ba'zi odamlar atribut uslubini afzal ko'rishadi.
Foydalanish misoli:
[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