اشتراکها
مطالب
Asp.Net Identity #1
API ، Identity جدید مایکروسافت جهت مدیریت کاربران در برنامههای ASP.NET میباشد. نقطهی اتکای مایکروسافت در سالهای اخیر برای مدیریت کاربران سیستم ASP.NET Membership بود که از ضعفهای طراحی رنج میبرد. مهمترین محدودیت این سیستم این بود که دادههای ذخیره شده توسط Schema، فقط قابلیت کار با SQL Server را دارا بود که توسعهی آن بدون پیاده سازی دوبارهی کلاسهای تامین کننده ( Provider Classes ) بسیار مشکل بود. بعد از آن مایکروسافت جهت کاهش پیچیدگی سیستم ASEP.NET Membership، دو سیستم دیگر به نامهای Simple Membership و ASP.NET Universal Providers را عرضه نمود. این سیستمها تا حدودی پیچیدگی را کم کردند، اما همچنان برمبنای SQL Server بودند. تا اینکه مایکروسافت سیستم ASP.NET Membership را با سیستم Identity جهت حل دو مشکل مطرح شده تعویض نمود. سیستم Identity هم پایدار است و هم قابل توسعه. به علاوه با استفاده از قابلیت Open Source بودن، قابل وفق دادن میباشد (یعنی برحسب نیاز پروژه میتوان کل یا قسمتهایی را پیاده سازی نمود). برای بسیاری از توسعه دهندگان برنامههای ASP.NET، سیستم Identity اولین پرده برداری از OWIN خواهد بود. در حقیقت OWIN یک لایهی Abstract میباشد که برنامهی وب را از محیطی که آنرا میزبانی کرده، ایزوله میکند. هدف از ایزوله کردن، ایجاد انعطاف پذیری بیشتر در محیط هایی که برنامههای ASP.Net را میزبانی میکنند و همچنین ایجاد یک زیرساخت سبک وزن جهت سرویس دهی میباشد. همان طور که عنوان شد OWIN یک استاندارد باز است و مایکروسافت پروژه KATANA را به منظور پیاده سازی استانداردی از OWIN طراحی کرد. این طراحی همراه با یک سری کامپوننت به منظور تامین ویژگیهایی (Functionalities) که یک برنامه وب به آنها نیاز دارد همراه بود. زیبایی کار مایکروسافت در این بود که OWIN/KATANA پشتهی تکنولوژی ASP.NET را از بقیهی قسمتهای .NET Framework ایزوله کرده که اجازه نرخ بالاتری از تغییرات را میدهد.
توسعه دهندگان OWIN به جای استفاده از کل پلتفرم (بر عکس چیزی که در حال حاضر در سرویسهای ASP.NET رخ میدهد) فقط سرویسهایی را که برنامه آنها نیاز دارد، انتخاب میکنند. این سرویسهای منفرد که در واژه نامهی OWIN با نام Middleware شناخته میشوند، میتوانند در نرخهای مختلفی توسعه داده شوند و توسعه دهندگان را قادر میسازند که بین تأمین کنندگان سرویسهای مختلف یکی را انتخاب کنند و فقط وابسته به سرویسهای پیاده سازی شده توسط مایکروسافت نباشند.
و در پایان باید گفت که پلتفرم ASP.NET و IIS کنار گذاشته نخواهند شد. مایکروسافت شفاف سازی کردهاست که یکی از ابعاد زیبای OWIN این است که به توسعه دهندگان اجازه انعطاف پذیری بیشتر را میدهد که در آن کامپوننتهای Middleware بوسیله IIS میزبانی میشوند و هم اکنون پروژهی KATANA توسط فضاهای نام System.Web پشتیبانی میشود.
خوب دوستان این مقدمه ای بود بر سیستم Identity . انشالله در نوشتههای بعدی بیشتر سیستم Identity را تحلیل و بررسی خواهیم کرد.
اگر به تنظیمات cfg.Events دقت کنید، تمام خطاهای اعتبارسنجی را لاگ میکند. یعنی اگر این موارد را بررسی کنید، مشکل را متوجه خواهید شد. در پروژه DNT Identity یک سرویس لاگر سفارشی تهیه شدهاست:
- سرویس لاگر سفارشی مبتنی بر EF Core
- کنترلر نمایش اطلاعات آن
- View مرتبط
- ثبت آن در سیستم: ^ و ^
- کنترلری که خطاهای سیستم را لاگ میکند و هدایت خطاها به این کنترلر
نیاز به یک چنین قسمتی در برنامه دارید تا بتوانید از خطاهای لاگ شده گزارش بگیرید و آنها را بررسی کنید.
- سرویس لاگر سفارشی مبتنی بر EF Core
- کنترلر نمایش اطلاعات آن
- View مرتبط
- ثبت آن در سیستم: ^ و ^
- کنترلری که خطاهای سیستم را لاگ میکند و هدایت خطاها به این کنترلر
نیاز به یک چنین قسمتی در برنامه دارید تا بتوانید از خطاهای لاگ شده گزارش بگیرید و آنها را بررسی کنید.