avatar
meissam heidari

کاربر

  • 1400/02/29
  • 0
  • 354
1400/02/29 |
backend
identity

پیاده سازی جنرال مدیریت کاربران

سلام وقت بخیر

ضمن تشکر از مطالب خوب آموزش شما یه سوال درخصوص مبحث identity داشتم که با تماشای فیلم های دوره ندیدم یا متوجه نشدم

اینکه context.user و وابسته هایش نظیر claim ها و...چه زمانی و چگونه مقدار دهی میشه احتمالا زمان login باید باشه اما متوجه نشدم چگونه

و دقیقا با چه دستوری و چطور میشه آنرا بصورت کاستوم و به شیوه دلخواه مقداردهی کرد

یا کجا User که در پروژه وب دسترس است مقدار دهی میشه و چطور میشه مثلا با خوندن یه api یا خوندن یه فایل مقدار دهیش کرد؟

میخوام identity رو ،رو پروژه وب apply کنم طوریکه با کمترین تغییرات کد و کانفیگور بعدا بشه به idp یا هر کنترل کننده احراز هویت دیگری تغییر داد

مثلا اگر بشه مدیریت کاربران رو روی پروژه بصورت جنرال پیاده سازی کرد بطوریکه هر زمان لازم بود رو identity و یا idp بشه سوییچ کرد ؟


چند تا سوال بود که یکی دو تاشو جواب میدم

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

 

                var user_ = _userManager.FindByEmailAsync(model.Email).Result;

                Claim NewClaim = new Claim("FullName", model.FirstName+" "+model.LastName, ClaimValueTypes.String);
                var resu = _userManager.AddClaimAsync(user_, NewClaim).Result;

دوم اینکه 

میشه از Claim ها برای مجوز و سطح دسترسی استفاده کرد

مثلا اگر از دستور زیر استفاده کنید 

[ClaimBasedAuthorization("UserRoleList"]

        public IActionResult UserRoleList(string Id)

{
return View();
}

اگر کاربری claim به نام UserRoleList را داشته باشد میتواند به این اکشن دسترسی داشته باشد

این Claim رو متونید لیستس از اونها تهیه کنید و به مدیر سایت نمایش بدید اون هم با انتخاب این گزینه ها میتونه این Claim رو به کاربر بده بعد اون کاربر میتونه به اکشن مورد نظر دسترسی داشته باشه

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

 



پاسخی برای این باگ ارسال کنید

لطفا کدها را درون قطعه کد ارسال نمایید

برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری