نمایش نتایج 1 تا 2 از 2

نام تاپیک: اختصاص نقش به کاربر به مدت محدود

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    Iran
    پست
    1,338

    اختصاص نقش به کاربر به مدت محدود

    سلام
    فرض کنید می خواهیم به کاربران در ازای پرداخت وجه، نقشی با عنوان VIP با مدت زمان مشخص مثلا یک ساله بدیم،
    که کاربر VIP در مدت این یک سال می تونه از یک سری امکانات سایت استفاده کنه.

    تکنولوژی مورد استفاده Asp.net mvc5 هست و من می خوام از خود جداول Identity پیش فرض استفاده کنم
    roles.gif
    چیزی که به نظر خودم می رسه اینه که یک فیلد تاریخ انقضا به جدول AspNetUserRoles اضافه کنم
    بعد در اکشن مورد نظر چک کنم اگه کاربر نقشش VIP بود و تاریخ انقضا نگذشته بود اجازه داشته باشه اون فعالیت مورد نظر رو انجام بده.
    برای چک کردن نقش که کد زیر رو بالای اکشن قرار می دیم
    [Authorize(Roles = "VIP")]



    - حالا سوال من اینه با فرض استفاده از asp.net 5 کدفرست چطور فیلد اختصاصی به جدول AspNetUserRoles میشه اضافه کرد؟

    - و سوال دوم هم اینه که چطور به این فیلد تاریخ انقضا به ازای کاربر موردنظر دسترسی پیدا کنیم؟


    ممنونم

  2. #2
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: اختصاص نقش به کاربر به مدت محدود

    جدول AspNetUserRoles یک جدول چند به چند هست و در صورت اضافه کردن یک فیلد به این جدول از حالت چند به چند بیرون رفته و تبدیل به رابطه یک به چند میشود و اینکار صحیح نیست
    برای این روش شما باید با جدول AspNetUsers کار کنید و فیلدهای تاریخ انقضا رو به این جدول اضافه کنید و کوئری شما بدینصورت باید باشه که:
    کاربرانی با نقش VIP از این تاریخ به بعد lock کنید یا نقش vip کاربر را به یک نقش معمولی تبدیل کنید
    برای اضافه کردن فیلد به AspNetUsers ابتدا یک کلاس بسازید مثلا AppUser

    public class AppUser : IdentityUser<string,IdentityUserLogin,IdentityUser Role,IdentityUserClaim>
    {
    //فیلد دلخواه اضافه کردیم public string FriendlyName { get; set; }
    }



    وذر تنظیمات DbSet ها در کلاس Context مان نیز عنوان جدول در دیتابیس را تغییر می دهیم

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
    modelBuilder.Entity<AppUser>().ToTable("Users")

    }
    ;

تاپیک های مشابه

  1. ۳ گیگ فضای رایگان برای برنامه نویسی به مدت محدود!!!!
    نوشته شده توسط mehdy.programmer در بخش Zend Framework
    پاسخ: 3
    آخرین پست: دوشنبه 18 فروردین 1393, 21:02 عصر
  2. خبر: ۳ گیگ فضای رایگان برای برنامه نویسی به مدت محدود!!!!
    نوشته شده توسط mehdy.programmer در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 1
    آخرین پست: دوشنبه 12 اسفند 1392, 17:25 عصر
  3. خبر: ۳ گیگ فضای رایگان برای برنامه نویسی به مدت محدود!!!!
    نوشته شده توسط mehdy.programmer در بخش دیگر زبان های اسکریپتی
    پاسخ: 1
    آخرین پست: یک شنبه 11 اسفند 1392, 20:06 عصر
  4. خبر: ۳ گیگ فضای رایگان برای برنامه نویسی به مدت محدود!!!!
    نوشته شده توسط mehdy.programmer در بخش Java ME : نگارش میکرو جاوا
    پاسخ: 0
    آخرین پست: یک شنبه 11 اسفند 1392, 19:39 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •