معرفی
به عنوان بخشی از این مقاله، با فیلترهای ASP.Net MVC، انواع مختلف آن ها آشنا می شویم و با استفاده از ویژوال استودیو یک فیلتر اکشن لاگ سفارشی ایجاد می کنیم. پس بدون اتلاف وقت بیایید شروع کنیم.
فیلترهای ASP.Net MVC چیست؟
در یک برنامه وب ASP.Net MVC، ما متدهای عمل تعریف شده در کنترلرهایی داریم که از نماهای مختلف فراخوانی می کنند. به عنوان مثال، هنگامی که کاربر بر روی دکمه ای در نما کلیک می کند، یک درخواست به کنترلر تعیین شده و سپس روش اقدام مربوطه می رود. در این جریان، گاهی اوقات میخواهیم منطق را قبل از فراخوانی یک متد عمل یا بعد از اجرای یک متد عمل انجام دهیم.
برای انجام شرایط فوق ASP.Net MVC فیلترهایی را در اختیار ما قرار می دهد. فیلترها کلاسهای سفارشی هستند که گزینهای را برای اضافه کردن رفتار پیش از اقدام و پس از اقدام به روشهای اقدام کنترلر در اختیار ما قرار میدهند.
چارچوب ASP.NET MVC از چهار نوع فیلتر مختلف پشتیبانی می کند:
- فیلترهای مجوز
- فیلترهای اکشن
- فیلترهای نتیجه
- فیلترهای استثنایی
توجه داشته باشید
آنها به ترتیب ذکر شده در بالا اجرا می شوند.
فیلترهای مجوز
در برنامه وب ASP.NET MVC به طور پیشفرض، تمام روشهای عمل همه کنترلکنندهها میتوانند برای همه کاربران (هم برای کاربران احراز هویت شده و هم برای کاربران ناشناس) قابل دسترسی باشند. برای این، اگر بخواهیم برخی از روشهای عمل را از کاربران ناشناس محدود کنیم یا بخواهیم روشهای عمل را فقط به یک کاربر تأیید شده اجازه دهیم، باید از فیلتر مجوز در MVC استفاده کنید.
فیلتر مجوز دو ویژگی داخلی مانند Authorize و AllowAnonymous را ارائه می دهد. ما میتوانیم روشهای عمل خود را با ویژگی Authorize تزئین کنیم که اجازه دسترسی به تنها کاربر تأیید شده را میدهد و میتوانیم از ویژگی AllowAnonymous برای اجازه دادن برخی از روشهای اقدام به همه کاربران استفاده کنیم.
همچنین میتوانیم فیلترهای مجوز سفارشی برای این کار ایجاد کنیم، باید رابط IAuthenticationFilter را پیادهسازی کنیم و OnAuthentication() و OnAuthenticationChallenge آن را لغو کنیم. ما به عمق آن می رویم.