هیچ دوره ای در سبد خرید شما وجود ندارد
در آموزش Authentication مبتنی بر Claims در Asp.net Core 2.2 ، به سه روش اصلی کنترل دسترسی در Idenity Core می پردازیم: Role-Based -Claims Based -Policy Based
ابزار Identity در ASP Core مسئولیت تشخیص هویت و کنترل دسترسی را به عهده دارد. این ابزار در نسخه های قبل هم وجود داشت اما مانند سایر قسمت ها بازنویسی شده است. در اینجا به سه روش اصلی کنترل دسترسی در Idenity Core می پردازیم.
روش Role-Based :
در این روش کاربر بر اساس سمتی که دارد به بخش هایی از سایت دسترسی پیدا می کند. مثلاً دسترسی به بخش مدیریت سایت فقط برای کاربر هایی با سمت Admin میسر است. در اینجا ما یک جدول برای نگهداری سمت ها و یک جدول هم برای نگهداری رابطه بین کاربران با هر سمت داریم و یک کاربر می تواند چندین سمت داشته باشد.
روش Claims-Based :
نسخهٔ جدید ASP Core تأکید زیادی به استفاده از این روش دارد. در این روش یک کاربر می تواند چند هویت داشته باشد. هر هویت مشخصه های خودش را دارد. دسترسی های یک کاربر بر اساس مشخصه های هر هویت فرق می کند. مثلاً شما برای گرفتن وام به بانک مراجعه می کنید و برای شناسایی کارت ملی ارائه می کنید. مشخصات کارت ملی بخشی از مشخصات شما شامل نام و تاریخ تولد را نشان می دهد و یکی از هویت های شما محسوب می شود. در این سیستم انواع مشخصات شما در یک جدول key/value ذخیره می شود و بعداً می توانید دسترسی به اکشن ها و کنترلر ها را بر اساس آن محدود کنید.
روش Policy-Based :
این شیوه ترکیبی از روش های قبل است. می توانید برای اجرای هرکدام از اکشن ها یک سیاست یا Policy تعریف کنید که می تواند شامل مجموعه از سمت ها و مشخصه های هویتی (Claims) باشد .علاوه بر این روش ها چند روش دیگر هم وجود دارد و باید گفت نسخهٔ جدید از هر نظر کامل است. بهطور کلی پیاده کردن سیستم امنیتی پیچیده است و بهتر است همیشه از Identity استفاده کنید. این سیستم بسیاری از نکات مهم مانند رمزنگاری را بهخوبی رعایت کرده است و سطح امنیت سایت را به میزان قابل توجهی بالا می برد.
مخاطبین دوره :
- افرادی که به برنامه نویسی علاقه دارند.
- علاقه مندان به Asp.net Core
- کسانی که به دنبال کسب درآمد از برنامه نویسی هستند.
- مناسب برای دانشجویان و فارغ التحصیلان مهندسی کامپیوتر
آنچه در این آموزش فرا خواهید گرفت :
- آشنایی به Clean Architecture و پیاده سازی آن در پروژه طبق معماری Clean Architecture
- نگهداری لاگین کاربر در یک مدت خاص
- سفارشی سازی Claim ها
- کانفیگ و پیاده سازی Claim ها و Authentication
- دسترسی به موارد Claim ها از طریق Identity
پیش نیاز ها :
- آشنایی با مبحث Asp.net Core
- تسلط بر زبان C#
- آشنایی نسبی با SQL Server
تکنولوژی و نرم افزار ها :
- Visual Studio
- SQL Server
سرفصل ها :
جلسه اول :
- توضیحاتی در مورد Clean Architecture، ایجاد پروژه، لایه بندی پروژه، ایجاد دیتابیس
جلسه دوم :
- ایجاد Interface مربوط به کاربران، تعریف Service برای Interface، اضافه کردن قالب به پروژه (جهت پروژه محور بودن آموزش)
جلسه سوم :
- پیکربندی Authentication، پیادهسازی Claim در پروژه و دسترسی به Claim ها از طریق Identity
برای دریافت آموزش ساخت فروشگاه اینترنتی با Asp.Net Core کلیک کنید :
آموزش ساخت فروشگاه اینترنتی با Asp.Net Core
مزایای خرید دوره :
- سورس و فایل های جانبی موردنیاز همراه با لینک های آموزش در اختیار شما قرار می گیرد.
- با تهیه این دوره آموزشی، محتوای ارزشمند برای ورود به بازار کار را به قیمت ناچیزی در اختیار دارید.
- ویدئو های آموزشی توسط واحد کنترل کیفیت ما بررسی و سطح علمی ، صدا و تصویر ، شیوه بیان و سایر موارد آن تایید می شود.
- ویدئو های آموزشی ما در حد نیاز به مباحث تئوری می پردازد و بیشتر آموزش به صورت عملی و متناسب با بازار کار می باشد.
- بلافاصله پس از ثبت سفارش لینک دانلود برای شما فعال شده و به ایمیلتان ارسال میگردد. همچنین در صورت انتخاب گزینه پستی مراحل ارسال مرسوله از طریق ایمیل به اطلاع شما می رسد.
- کیفیت تمامی دوره های سایت تضمین شده است. در صورت عدم رضایت از آموزش، به انتخاب شما یا به صورت رایگان یک یا چند آموزش معادل دیگر دریافت می کنید و یا ۷۰ درصد مبلغ پرداختی به کیف پول شما بازگشت داده می شود.
نیما چاپی دانشجوی دوره
سلام و عرض ادب
ممنونم از جناب مهندس کلانتر عزیز
بعد از چندین سال این آموزش بخوبی تونست مباحث رو توی ذهنم ریکاوری کنه
ممنونم از شما انشالا همیشه سالم و سلامت باشید
بهنام کلانتر مدرس دوره
سلام خیلی خوشحالم که براتون مفید بوده و باعث افتخار بنده است
kamshaad
خیلی ممنون بابت زحماتتون همه چیز عالیست
soheylakazemi
سلام ممنون از شما دوست عزیز موفق باشید
smr.moradzadeh دانشجوی دوره
سلام، ممنون بابت دوره ، من دبیر کامپیوتر هستم و از سال اول که بچه ها وارد هنرستان و رشته ی کامپیوتر میشن ازشون میخام کلمات انگلیسی رو با تلفظ صحیح بیان کنن، این خیلی نکته ی مهمیه که ما به عنوان کسی که آموزش میده، تلفظ ها رو چک کنیم و بعد کلمه رو بیان کنیم، چیزی که مشخصه سواد بالای شما در زمینه ی برنامه نویسیه، اگر کلمات رو با تلفظ درست بیان کنید قطعا کیفیت دوره بالاتر میره.
samirakazemifar0
سلام ممنون دانشجویاری عزیز بابت نکته سنجیتون
pouriashaigani دانشجوی دوره
درمورد نقش ها هم کاش میگفتید
soheylakazemi
سلام چشم ان شالله در اموزش های بعدی لحاظ خواهیم کرد
pouriashaigani دانشجوی دوره
سلام ممنون بخاطر اموزش من تاحالا در asp.net core ثبت نام و لاگین انجام ندادم و در asp.net 4.x هم به طور دستی ثبت نام را مینوشتم.
در asp.net core معمولا به چه صورت احراز هویت و ثبت نام رو انجام میدن ؟
ایا از سیستم اماده ی identity که تمام صفحات لاگین ثبت نام ارسال ایمیل و بازیابی رمز عبور را خودش میسازه استفاده میکنن؟
یا مثل این اموزش انجام میشه؟
بهار
خیلی اموزش خوبی بود ممنونم از زحمات شما
محمود
سلام
ممنون از آموزش مفید و حرفه ای شما خیلی کارم رو راه انداخت
پارسا
سلام به استاد گرامی و خسته نباشید
واقعا ازتون ممنونم خیلی کار منو راه انداخت و مدتی بود دنبال استفاده از داده هایی claim بودم که با فایلی که قرار دادید کارم راه افتاد .
فقط یه سوال
این داده ها که به صورت claim ذخیره میشه و ما میتونیم ازش هرجایی استفاده کنیم کجا نگهداری میشه. منظورم بحث امنیتش هست . مشکلی که نداره ؟
و یه درخواست . خواهشا اگه براتون امکانش وجود داره یه آموزش در مورد تریگرها در asp.net core هم قرار بدید . هرپی گشتم آموزشی فارسی در این مورد در هیچ سایتی پیدا نکردم . اگر بتونید که خیلی عالی میشه .
تشکر از همه زحماتتون
بهنام کلانتر مدرس دوره
سلام دوست عزیز خوشحالم که آموزش مورد توجه تون قرار گرقته
نه از این لحاظ مشکلی نداره
در مورد تریگرها چشم انشآلله یه چیز خوب آموزش میدم
رضا
سلام
دوست عزیز بحث Clean Architecture شما ایرادات زیاد داشت.
لایه ای به نام DataLayer اصلا وجود نداره این معماری.
جای ViewModel ها در لایه Core نیست.
و …
البته زحمت ای که کشیدید جای تقدیر داره، اما لطفا قبل از ارائه مطالب آموزشی ابتدا منابع معتبر در زمینه مورد نظرتون رو مطالعه کنید.
موفق باشید.
User
سلام و عرض ادب
من تازه این آموزش را دیدم آیا روش لاگینی که آموزش دادید امنیت خوبی داره ؟منظورم به لحاظ تزریق sqlنیست
و یک سوال چرا وقتی که من در حالت لوکال خروج را میزنم و loguot میشوم با کلید بک مرورگر صفحه پنل که مخصوص ادمین هست برایم نمایش داده میشه ؟ چطور می تونم کاری کنم که مثل identity فابریک mvc بعد از کلیک خروج بلافاصله دیگه به صفحات ادمین دسترسی نداری حتی با کلیک بک مرورگر
بهنام کلانتر مدرس دوره
سلام دوست عزیز این آموزش کلا چیز هاییی که شما گفتین نیاز شما رو برطرف نمیکنه
لطفا آموزش
طراحی سایت رسانه آموزشی با Asp.net Core 2.2 رو مشاهده کنید و همین بحث البته کامل تر و وسیع تر در پروژه واقعی پیاده سازی شده
و کاملا نیازهای شما رو برطرف میکنه
علی
با درود خدمت آقای کلانتر عزیز و خسته نباشید.
خواهشمندم همین پروژه قشنگی که نوشتید رو تبدیل به یک
SSO
ساده کنید عالی میشه. این پروژه بشدت استعداد تبدیل شدن به یک SSO
رو داره .
رضا محمدزاده
سلام آقای کلانتر ممنون از آموزش خوبتون ، فقط ای کاش این روش رو بجای کوکی براساس jwt پیاده میکردید! البته اگر بر اساس jwt هم یه آموزش جداگانه تهیه کنید خیلی ممنون میشم!
بهنام کلانتر مدرس دوره
سلام
در اسرع وقت این آموزش هم انشاالله تولید میکنم
اسماعیل دامن پاک
سلام و وقت بخیر
خسته نباشید
بسیار سپاسزگزار از آموزش خوبتون
بنده ازین قابلیت توی پروژه ام استفاده کردم اما یه مشکلی برام پیش اومده
زمانی که پروژه رو روی سیستمم(لوکال) اجرا میکنم هیچ مشکلی نیست و همه چیز خوب کار میکنه و تا زمانی که کاربر روی دکمه خروج کلیک نکنه میتونه به صفحات مختلفی که بهش دسترسی داره وارد بشه و ….
اما وقتی پروژه رو روی سرور میبرم و کاربر لاگین میکنه وارد پنل کاربری میشه اما نمیدونم چرا کاربر هنوز روی دکمه خروج کلیک نمیکنه و با ورود به صفحات مختلف به صفحه لاگین منتقل میشه و باید مجدد لاگین کنه
مشکل فوق توی حالت لوکال بوجود نمیاد
میتونید راهنمایی کنید که چرا این مشکل روی هاست بوجود میاد؟
بهنام کلانتر مدرس دوره
سلام ممنون
ببینید کد سمت سرور چه تو لوکال و چه در host قرار نیست فرقی بکنه
اصولا بیشتر هنگام اپلود پروژه روی هاست مشکلات دیزاین و html به وجود میاد
احتمالا مشکل از داده های دیتابیس شما هست از طریق sql server نام کاربری و رمز عبور دیتابیستون رو بزنید و وارد بشید و ببیند اون کاربری که لاگین مینه سطح دسترسی لازم رو داره یا نه؟
hamsayegi
سلام
من با این مشکل مواجه شدم.
اگر ssl پروژتون فعاله certification هاست خودتونو چک کنین.
بهنام کلانتر مدرس دوره
سلام
با مرورگر فایر فاکس پروژه رو Run کردید؟
هما
سلام
از این آموزشتون برای سطح دسترسی در انگولار میتونیم استفاده کنیم؟
بهنام کلانتر مدرس دوره
سلام اگر پروژه رو با angular و asp core دارین پیاده سازی می کنید بله امکانش هست
علی
با سلام و تشکر.لطفا اموزش پروژه محور برای بازار کار ارئه بدین که اپلیکیشن موبایل هم توش باشه. با ورژن جدید asp.net core
بهنام کلانتر مدرس دوره
سلام اموزش جدید در حال ضبط هست ولی تاریخ انتشارش حدودا تا قبل از عید نوروز طول میکشه البته سعی میکنم زودتر مباحث رو تمومش کنم
علی
استاد اگه میتونید اموزش مخصوص بازار کار باشه با جدیدترین نسخه Asp.net core به همراه اپلیکیشن موبایل فرقی نداره زامارین هم باشه میشه با جدیدترین نسخه هاش . فقط یه اموزش کامل و کامل باشه برای بازار کار.با تشکر
علی
لطفا اموزش پروژه محور برای بازار کار ارئه بدین که اپلیکیشن موبایل هم توش باشه. با ورژن جدید asp.net core
Salah
سلام ممنون
مهدی
سلام و وقت بخیر
ممنون از آموزش شما
فقط یه سوال داشتم که فرض کنین ما میخوایم Expire رو 30 دقیقه کنیم و وقتی تموم شد خودش اتوماتیک مارو بندازه صفحه لاگین و منتظر رفرش کاربر و یا کلیک کردن رو صفحه و … نمونه
چطور میشه اینکار رو کرد؟
ممنون از شما
بهنام کلانتر مدرس دوره
سلام ممنون
ولی بنده تا جایی که اطلاع دارم تا زمانی که یک Request به سمت سرور ارسال نشه نمیتونه بفمهمه که کاربر Time out شده
ولی بازم مورد شما رو تحقیق کردم که به یک مورد برخوردم شما این صفحه رو ببیند و قسمت Ajax رو توی پروژه پیاده سازی کنید ببینید عملا کار میکنه یا نه
https://stackoverflow.com/questions/46858367/asp-net-core-not-redirecting-to-login-page-after-session-times-out
طه
سلام
ببخشید اموزش Authorization با asp.net mvc5 هم میشه بزارید
امیر
سلام اقای کلانتری .آموزش های شما خیلی عالی ومفید هستند ممنون از آموزش هاتون خیلی دوستتون دارم تشکر
بهنام کلانتر مدرس دوره
سلام دوست عزیز نظر لطفتونه
نظرات گرم شما دوستان عزیز باعث دلگرمی مدرسین و شوق بیشتر در ضبط اموزش می باشد
رضا
با سلام ، ممنون از آموزش خوبتون جناب مهندس!