سیستم دسترسی در یک سیستم، همیشه برای من چالش برانگیز بوده است. با دیدن کدهای مختلف از افراد مختلف، شیوههای گوناگونی از کدنویسی را دیدهام؛ ولی یکی از نکاتی که در بین آنها بررسی نشده بود و یا از آن غافل مانده بودند، بررسی بعضی از عناصر موجود در ویو بود که باید با توجه به نقش کاربر سیستم، وضعیت آن بررسی میشد. برای مثال تصور کنید که شما دو کاربر دارید که هر دو سطح دسترسی به پروفایل کاربران دیگر را دارند. ولی یکی از کاربرها این توانایی ر ...
با به پایان رسیدن مرحلهی توسعهی ASP.NET Identity 2.x مخصوص نگارشهای ASP.NETایی که از Full .NET Framework استفاده میکنند، نگارش جدید آن صرفا بر پایهی ASP.NET Core تهیه شدهاست و در طی یک سری، نحوهی سفارشی سازی تقریبا تمام اجزای آنرا بررسی خواهیم کرد. جهت سهولت پیگیری این سری، پروژهی کامل سفارشی سازی شدهی ASP.NET Core Identity را از مخزن کد DNT Identity میتوانید دریافت کنید.
پیشنیازهای اجرای پروژهی DNT Identity ...
نکته: در این مقاله کلمه "بازه زمانی" معادل Interval میباشد. اگر از سیستم احراز هویت از طریق کوکی در asp.net Identity 2.1 استفاده میکنید، دو تنظیم برای بررسی پایان یافتن اعتبار کاربر وجود دارد که در نگاه اول، هیچ تفاوتی باهم نداشته و شبیه به هم به نظر میرسند: ValidateInterval و ExpireTimeSpan app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCooki ...
در بخش پیشین به بررسی جزئیتر ایجاد پایگاه داده و همچنین توسعه Custom Filter Attribute پرداختیم که وظیفه تایید صلاحیت کاربر جاری و بررسی دسترسی وی به API Method مورد نظر را بررسی میکرد. در این مقاله به این بحث میپردازیم که در Filter Attribute توسعه داده شده، قصد داریم یک سرویس Access Control ایجاد نماییم. این سرویس وظیفه تمامی اعمال مربوط به نقشها و دسترسیهای کاربر را بر عهده خواهد داشت. این سرویس به صورت زیر تعریف میگردد: pu ...
در بخش پیشین مروری اجمالی را بر روی یک سیستم مبتنی بر نقش کاربر داشتیم. در این بخش تصمیم داریم تا به جزئیات بیشتری در مورد سیستم دسترسی ارائه شده بپردازیم. همانطور که گفتیم ما به دو صورت قادر هستیم تا دسترسیهای (Permissions) یک سیستم را تعریف کنیم. روش اول این بود که هر متد از یک کنترلر، دقیقا به عنوان یک آیتم در جدول Permissions قرار گیرد و در نهایت برای تعیین نقش جدید، مدیر باید جزء به جزء برای هر نقش، دسترسی به هر متد را مشخص کند. در ...
در این مجموعه مقالات قصد دارم یک روش را برای پیاده سازی سیستم Role Based سفارشی شده، به صورت پروژه محور، در اختیار شما دوستان قرار دهم. این مجموعه مقالات در هر دو بخش سرور و کلاینت، در قالب یک پروژهی واقعی ارائه خواهد شد. در سمت سرور از Web API و سیستم Identity 2.1 و در سوی کلاینت از تکنولوژی قدرتمند AngularJs کمک گرفته شدهاست. در این مجموعه قصد دارم تا مراحل کلی و اصلی این سیستم دسترسی را تشریح کنم. مقدمه ای بر سیستم مبتنی بر نقش کاربرا ...
قصد داریم طی یک سری مقالات به توسعه یک سیستم مدیریت محتوا بپردازیم. مسلما فاصلهی زمانی بین انتشار مقالات این سری، کمی زیاد خواهد بود. ولی سعی خواهیم کرد تا قدم به قدم و با تحلیل و توضیح کافی هر بخش به این هدف برسیم. همکاران این قسمت: سلمان معروفی پیشنیازها: مطالعه مسیر آموزشی " Entity Framework Code-First " مطالعه مسیر آموزشی " Asp.NET MVC " مطالعه مقالات مربوط به " Asp.net Identity " مطالعه مسیر آموزشی " اصول ...
فرمت کوکیهای ASP.NET Identity از پروژهی سورس باز Katana دریافت شدهاست و تولید آن پس از لاگین کاربر، شامل مراحل زیر میباشد:
1- با استفاده از کلاس ApplicationUser، شیء ClaimsPrincipal را تولید میکند.
2- به این ClaimsPrincipal اطلاعاتی مانند ApplicationUser.Id و SecurityStamp اضافه میشوند.
3- در ادامه، ClaimsPrincipal به OWIN و کلاس CookieAuthenticationHandler آن ارسال میشود.
4- کار کل ...
تغییر الگوریتم پیش فرض هش کردن کلمههای عبور ASP.NET Identity
کلمههای عبور کاربران فعلی سیستم با الگوریتمی متفاوت از الگوریتم مورد استفاده Identity هش شدهاند. برای اینکه کاربرانی که قبلا ثبت نام کرده بودند بتوانند با کلمههای عبور خود وارد سایت شوند، باید الگوریتم هش کردن Identity را با الگوریتم فعلی مورد استفاده Iris جایگزین کرد.
...
در بخش اول ، کارهایی که انجام دادیم به طور خلاصه عبارت بودند از: 1- حذف کاربرانی که نام کاربری و ایمیل تکراری داشتند 2- تغییر نام فیلد Password به PasswordHash در جدول User سیستم مدیریت محتوای IRIS، برای استفاده از Entity Framework، از الگوی واحد کار (Unit Of Work) و تزریق وابستگی استفاده کرده است و اگر با نحوهی پیاده سازی این الگوها آشنا نیستید، خواندن مقاله EF Code First #12 را به شما توصیه میکنم. برای استفاده از A ...