سلام دوستان خسته نباشید
من میخوام قابلیت عضویت Trial رو تو پروژم پیاده کنم (اولین باره دارم trial رو پیاده میکنم و همین راه به ذهنم رسید ، اگر راه بهتری هست لطفا بگید) ، به اینصورت کار کردم :
هر کاربر میتونه چند تا نقش داشته باشه مثلا : Customer,User
بعد مثلا تو کنترلر customer از فیلتر [Authorize(Roles="Customer")] استفاده کردم، حالا میخوام داخل این کنترلر فقط برای اکشن index اینطوری باشه که اول چک کنه ببینه آیا کاربر نقش customer رو داره ؟ اگر این نقش نداشت دوباره یه شرط دیگه رو چک کنه ببینه اگر کاربر trial باشه و مدت 10 روزه trial هنوز تموم نشده باشه به کاربر اجازه ورود به اکشن index رو بده .
حالا چطوری پیادش کنم؟
خیلی ممنون
public class MyAuthorizeAttribute : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); } }
این رو پیاده سازی کنید و کاملا هم منعطف هستش. بعد دیگه بالای اکشن ها یا کلاس ها از این خصیصه (MyAuthorize) استفاده کنید.
موفق باشید.
میشه کامل تر توضیح بدین؟ این فیلتر رو چطوری باید پیاده کنم که همه کار هایی رو که فیلتر authorize انجام میده رو به اضافه ی اون دو تا شرط خودم انجام بده ؟
اصلا داخل فیلتر Authorize چی نوشته ؟ کد های داخل اون رو ندیدم و نمیدونم دقیقا چی رو بررسی میکنه،
بعد اگر این فیلتر رو پیاده کردم دیگه لازم نیست فیلتر [Authorize] رو استفاده کنم ؟ به جای اون همین فیلتر سفارشی کافیه؟
حالا من که میخوام فقط تو اکشن index اون شرط ها چک بشن و بقیه اکشن ها طبق روال معمول و با فیلتر [Authorize ] بررسی بشن یعنی :
[Authorize(Roles = "Customer")] public class CustomerController : Controller { [myCustomAuthorize] public ActionResult Index() { } }
تقریبا یه همچین چیزی میخوام
میخوام فیلتر سفارشی فقط به ایندکس اعمال بشه
لطفا راهنمایی کنید
خیلی ممنون
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)