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

نام تاپیک: سفارشی کردن identity 2 با تنظیم دسترسی ها

  1. #1
    کاربر تازه وارد آواتار ictboy
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    رشت
    پست
    35

    Unhappy سفارشی کردن identity 2 با تنظیم دسترسی ها

    باسلام و خسته نباشید
    من برای استفاده از identity 2 در ASP.net MVC 5 چند تا سوال دارم ممنون میشم راهنمایی بفرمایید:
    1- آیا در ایجاد کاربر میشه ایمیل وارد نکرد و نام کاربری وارد کنیم؟
    نمونه ها و مثال هایی که زده میشه برای سیستم های عضو گیری هست که خود کاربر میاد و ثبت نام رو انجام میده ولی من منظور استفاده از identity بعنوان سیستم مدیریت کاربران در برنامه های مثل اتوماسیون هست. بصورتی که یک ادمین در حال تعریف کاربران هست و دسترسی های هر کاربر در بخش های مختلف رو مشخص می کنه.
    2- چطور میشه یک سری دسترسی ها رو به نقش ها یا کاربران اختصاص داد و در زمان فراخوانی هر کنترلر اون ها رو بررسی کرد؟ در حالت کلی ما میگیم هر کس مثلا نقش admin داره بتونه فلان اکشن از فلان کنترلر رو باز کنه ولی اگر بخوایم دسترسی ها رو ریزتر کنیم مثلا بگیم کاربر 1 دارای نقش 2 هست و دسترسی ایجاد، ویرایش، حذف و... رو داره یا ندارهمثلا جدول دسترسی به شکل زیر داشته باشیم.

    شناسه کاربر شناسه بخش دسترسی ایجاد دسترسی ویرایش دسترسی حذف
    100 1 True True True
    101 1 True False False

    من چنین جدولی دارم که دسترسی کاربرانم رو توش ذخیره می کنم و یک AuthorizeAttribute هم نوشتم تا کاربر لاگین شده رو بررسی کنم دسترسی براساس جدول بالا رو داره یا نه. آیا identity رو با چنین ساختاری میشه پیاده سازی کرد یا نه؟
    اگر نه برای چنین حالت هایی چه راهکاری وجود داره؟

    3- در حال حاضر من از OWIN استفاده نمی کنم. موقعی که کاربر لاگین میکنه با اینکه در webconfig تنظیم کردم timeout=30 باشه ولی کاربر اگر از سیستم استفاده نکنه در زمان کمتر از 5 دقیقه به صفحه لاگین هدایت میشه. آیا با راه اندازی owin این مشکل حل میشه یا ایراد کار از جای دیگه است.

    ممنون


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

    نقل قول: سفارشی کردن identity 2 با تنظیم دسترسی ها

    سلام
    تقریبا 5 سال قبل مواردی که گفتید پیاده سازی کردم و همه موارد قابل اجرا هست
    جواب سوال اول بله قابل تنظیم هست
    در کلاس
    ApplicationUserManager

    ApplicationUserManager : UserManager<ApplicationUser>

    سوال دوم هم به راحتی قابل پیاده سازی هست و حتی میتوانید منوی داینامیک بر اساس هر رول بسازید شما در این مرحله باید رول داینامیک بسازید و در دیتابیس ذخیره کنید
    سول سوم ربطی به timeout=30 ندارد و جای دیگر باید تنظیم انجام داد

  3. #3
    کاربر تازه وارد آواتار ictboy
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    رشت
    پست
    35

    نقل قول: سفارشی کردن identity 2 با تنظیم دسترسی ها

    نقل قول نوشته شده توسط ali_md110 مشاهده تاپیک
    سلام
    تقریبا 5 سال قبل مواردی که گفتید پیاده سازی کردم و همه موارد قابل اجرا هست
    جواب سوال اول بله قابل تنظیم هست
    در کلاس
    ApplicationUserManager

    ApplicationUserManager : UserManager<ApplicationUser>

    سوال دوم هم به راحتی قابل پیاده سازی هست و حتی میتوانید منوی داینامیک بر اساس هر رول بسازید شما در این مرحله باید رول داینامیک بسازید و در دیتابیس ذخیره کنید
    سول سوم ربطی به timeout=30 ندارد و جای دیگر باید تنظیم انجام داد

    ممنون از راهنمایی تون

    مورد یک : تو نمونه که خود Owin داده تو این کلاسی که شما اشاره کردم چنین کدی هست

    manager.UserValidator = new UserValidator<ApplicationUser>(manager)            {


    AllowOnlyAlphanumericUserNames = false,
    RequireUniqueEmail = true
    };

    منظورتون این هست که RequireUniqueEmail = true رو برابر false قرار بدم.

    در مورد دوم نمونه ای داریم که این کار رو انجام داده باشه یا روال انجام دادن به چه صورت باید باشه. چون الان جدولی دارم که بخش های مختلف بعنوان مثلا رول داخلش لیست شده و جدول دیگری هم داریم توش مشخص کردم کدوم کاربر به کدوم بخش دسترسی ایجاد و ویرایش و حذف داره. صرفا به این دلیل سوال پرسیدم که در قالب OWin چطور پیاده سازی کنم.

    در خصوص سوال سوم اگر راهنمایی بفرمایید کجا و چه چیز رو باید تنظیم کنم ممنون میشم.

    باتشکر
    آخرین ویرایش به وسیله ictboy : دوشنبه 06 مرداد 1399 در 09:40 صبح

  4. #4
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    43
    پست
    6,305

    نقل قول: سفارشی کردن identity 2 با تنظیم دسترسی ها

    1- آیا در ایجاد کاربر میشه ایمیل وارد نکرد و نام کاربری وارد کنیم؟ نمونه ها و مثال هایی که زده میشه برای سیستم های عضو گیری هست که خود کاربر میاد و ثبت نام رو انجام میده ولی من منظور استفاده از identity بعنوان سیستم مدیریت کاربران در برنامه های مثل اتوماسیون هست. بصورتی که یک ادمین در حال تعریف کاربران هست و دسترسی های هر کاربر در بخش های مختلف رو مشخص می کنه.
    یک راهش همونی هست که در این پست نوشتید. به هر حال، برای پیاده سازی یک سیستم کامل کنترل دسترسی، کلیه جزئیات در قالب یک پکیج آموزشی به صورت قدم به قدم تشریح شده است. سورس پروژه هم بر روی گیت هاب موجود است.

    2- چطور میشه یک سری دسترسی ها رو به نقش ها یا کاربران اختصاص داد و در زمان فراخوانی هر کنترلر اون ها رو بررسی کرد؟ در حالت کلی ما میگیم هر کس مثلا نقش admin داره بتونه فلان اکشن از فلان کنترلر رو باز کنه ولی اگر بخوایم دسترسی ها رو ریزتر کنیم مثلا بگیم کاربر 1 دارای نقش 2 هست و دسترسی ایجاد، ویرایش، حذف و... رو داره یا ندارهمثلا جدول دسترسی به شکل زیر داشته باشیم.
    عطف به پاسخ شماره 1.


    3- در حال حاضر من از OWIN استفاده نمی کنم. موقعی که کاربر لاگین میکنه با اینکه در webconfig تنظیم کردم timeout=30 باشه ولی کاربر اگر از سیستم استفاده نکنه در زمان کمتر از 5 دقیقه به صفحه لاگین هدایت میشه. آیا با راه اندازی owin این مشکل حل میشه یا ایراد کار از جای دیگه است.
    مشکل Logout شدن زودتر از زمان پیش بینی شده ربطی به OWIN ندارد. مشکل این است که در اکثر هاست ها، حافظه کمی به Application Pool هر دامین اختصاص می دهند، بنابراین با پر شدن حافظه اختصاصی سایت شما، Session و دیگر محتویات Application Domain از حافظه تخلیه می شود و Application Pool تا دریافت Request بعدی Terminate می شود. کوکی احراز هویت نیز (با اینکه اینکار نادرست است) به صورت پیش فرض به Session مرتبط است.
    برای حل مشکل، سرچ کنید چگونه می توانید Session را طوری پیکربندی کنید که از یک دیتابیس SQL Server بجای حافظه رم استفاده کند.

  5. #5
    کاربر تازه وارد آواتار ictboy
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    رشت
    پست
    35

    نقل قول: سفارشی کردن identity 2 با تنظیم دسترسی ها

    ممنون از راهنمایی خوبتون جناب کرامتی

    فقط موضوعی که برام سوال هست اینه که Identity از کوکی برای نگهداری احراز هویت استفاده می کنه. تغییر پیکربندی Session به SQL Server برای Identity هم تاثیر داره؟ چون من اطلاعات کاربر رو در Session نمی ریزم.
    تصور من این بود که تنظیمات sessionState و Mode های اون زمانی استفاده میشه که بعد از لاگین اطلاعات رو داخل session ذخیره کنیم. اگر اشتباه میگم لطفا راهنمایی بفرمایید.

  6. #6
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    43
    پست
    6,305

    نقل قول: سفارشی کردن identity 2 با تنظیم دسترسی ها

    حتی اگر شما از Session در برنامه استفاده نکرده باشید مکانیسم Identity متاسفانه رد کوکی لاگین رو در Session، و نیز مشخصات Session کنونی رو در کوکی لاگین نگهداری می کنه. بنابراین، خواه ناخواه این اتفاق میافته و اون ارتباط وجود داره.

    یک پیشنهادی دارم که خودم تستش نکردم، اما بد نیست شما تستش کنید:
    با استفاده از کتابخانه ای مانند Quartz یا Hangfire، یک تسک بنویسید که دو دقیقه یک بار با استفاده از HttpClient یا کلاسی مثل اون، یکی از صفحات سبک سایت رو Get کنه و داخل یک متغیر قرار بده. لازم نیست با محتویات اون متغیر کاری انجام بدید، مهم اجرای اون دستور Get است که حکم یک Request از یک کاربر به یکی از صفحات سایت شما رو داره و باعث میشه پروسه سایت شما بخاطر Idle بودن Terminate نشه. کد فوق هم با استفاده از Hangfire می تونه در دل خود Web Application شما جاگذاری بشه.

  7. #7
    کاربر تازه وارد آواتار ictboy
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    رشت
    پست
    35

    نقل قول: سفارشی کردن identity 2 با تنظیم دسترسی ها

    ممنون از توضیحات خوبتون

    میخواستم با Quartz چنین کاری انجام بدم ولی بنظرم کار اصولی نیومد ازش منصرف شدم. ناچار شدم چنین کاری انجام میدم.
    ضمنا نمونه کدی که در پکیج آموزشی تون بود خیلی خوب و کامل بود و راهنمای مناسبی هست.
    باتشکر

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

  1. سوال: دسترسی های داینامیک در Identity
    نوشته شده توسط jaykob در بخش ASP.NET MVC
    پاسخ: 2
    آخرین پست: دوشنبه 17 اردیبهشت 1397, 12:51 عصر
  2. سوال: دسترسی به آخرین رکورد جدول بدون Identity
    نوشته شده توسط msartin در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: سه شنبه 19 فروردین 1393, 13:06 عصر
  3. سوال: دسترسی به user identity جهت نوشتن query SQL
    نوشته شده توسط roholla.sadeghi در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 13 مرداد 1391, 13:50 عصر
  4. عدم دسترسی به User.Identity.IsAuthenticated
    نوشته شده توسط bardia goharbin در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: دوشنبه 25 مهر 1390, 07:17 صبح
  5. دسترسی به مقدارفیلدIdentity
    نوشته شده توسط a3mooneabi22 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: پنج شنبه 19 شهریور 1388, 13:41 عصر

برچسب های این تاپیک

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

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