مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza373

عضویت از 1394/10/30

مشکل در سفارشی سازی فیلتر Authorize

  • یکشنبه 31 تیر 1397
  • 11:39
تشکر میکنم

سلام دوستان خسته نباشید

من میخوام قابلیت عضویت Trial رو تو پروژم پیاده کنم (اولین باره دارم trial رو پیاده میکنم و همین راه به ذهنم رسید ، اگر راه بهتری هست لطفا بگید) ، به اینصورت کار کردم :

هر کاربر میتونه چند تا نقش داشته باشه مثلا : Customer,User

بعد مثلا تو کنترلر customer از فیلتر [Authorize(Roles="Customer")] استفاده کردم، حالا میخوام داخل این کنترلر فقط برای اکشن index اینطوری باشه که اول چک کنه ببینه آیا کاربر نقش customer رو داره ؟ اگر این نقش نداشت دوباره یه شرط دیگه رو چک کنه ببینه اگر کاربر trial باشه و مدت 10 روزه trial هنوز تموم نشده باشه به کاربر اجازه ورود به اکشن index رو بده .

حالا چطوری پیادش کنم؟

خیلی ممنون

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • یکشنبه 31 تیر 1397
  • 12:36
    public class MyAuthorizeAttribute : AuthorizeAttribute
    {
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);
        }
    }

این رو پیاده سازی کنید و کاملا هم منعطف هستش. بعد دیگه بالای اکشن ها یا کلاس ها از این خصیصه (MyAuthorize) استفاده کنید.

موفق باشید.

کاربر سایت

morteza373

عضویت از 1394/10/30

  • یکشنبه 31 تیر 1397
  • 13:21

میشه کامل تر توضیح بدین؟ این فیلتر رو چطوری باید پیاده کنم که همه کار هایی رو که فیلتر authorize انجام میده رو به اضافه ی اون دو تا شرط خودم  انجام بده ؟

اصلا داخل فیلتر Authorize چی نوشته ؟ کد های داخل اون رو ندیدم و نمیدونم دقیقا چی رو بررسی میکنه،

بعد اگر این فیلتر رو پیاده کردم دیگه لازم نیست فیلتر [Authorize] رو استفاده کنم ؟ به جای اون همین فیلتر سفارشی کافیه؟

حالا من که میخوام فقط تو اکشن index  اون شرط ها چک بشن و بقیه اکشن ها طبق روال معمول و با فیلتر  [Authorize ] بررسی بشن یعنی :

  [Authorize(Roles = "Customer")]
  public class CustomerController : Controller
  {

 [myCustomAuthorize]
public ActionResult Index()
{
}
}

تقریبا یه همچین چیزی میخوام

میخوام فیلتر سفارشی فقط به ایندکس اعمال بشه

لطفا راهنمایی کنید

خیلی ممنون

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)