ریبوار حسین پوری
ریبوار حسین پوری
خواندن ۱ دقیقه·۴ سال پیش

ایجاد یک Custom Password Validator در ASP.NET Core


به همراه عرضه Net Framework. وجود یکی از سیستم های قوی Identity همواره جزئی جدایی ناپذیر از ASP.NET بوده و با انتشار نسخه Core تغییرات ارزشمندی همچون استفاده از Claim ها ، شخصی سازی Entity های مربوط به کاربران و... را شاهد بودیم ، در این مقاله با چگونگی تنظیمات پایه مربوط به Identity و همچنین ایجاد کلاسی جهت اعمال قوانین سفارشی مربوط به Password ‌آشنا میشویم.




قبل از هر چیز جهت استفاده از Identity باید کلاسی داشته باشیم که بتوان آنرا بعنوان User Entity در نظر بگیریم که این کلاس از کلاس IdentityUser ارث بری کرده باشد به همین منظور یک پراپرتی TwitterId هم جهت دیدن تغییرات به آن اضافه میکنیم

با اینکار جدول AspNetUsers شامل یک فیلد اضافی برابر TwitterId خواهد بود


سپس به کلاس Startup رفته و کدهای زیر را به متد ConfigureServices اضافه میکنیم:

همانطور که مشخص است لیست محدودیت هایی که میتوانیم روی Password اعمال کنیم محدود است و اگر به تنظیمات دیگری نیاز داشته باشیم بایستی یک کلاس جدا ایجاد کرده و تنظیمات لازم را در آن کلاس انجام دهیم، برای مثال در این کلاس مشخص میکنیم در صورتی که پسورد وارد شده شامل یوزر نیم کاربر باشد پیغام خطائی به کاربر نشان داده شود:

در نهایت جهت استفاده از کلاس باید آنرا بعنوان سرویس رجیستر کنیم :

همانطور که میدانید سناریوهای متعددی با استفاده از این روش قابل پیاده سازی هست و دیگر محدود به استفاده از کانفیگ های پیش فرض Password Identity نیستیم .

مشکلی که این روش استفاده دارد ، تنظیمات کلاس ساخته شده را جایگزین تنظیمات پیش فرض سیستم میکند و آنها را در نظر نمیگیرد برای رفع این مشکل به جای پیاده سازی اینترفیس IPasswordValidator میتوان از کلاس PasswordValidator ارث بری کرد

سورس های به کار رفته از طریق ریپازیتوری زیر در دسترس خواهد بود:
https://github.com/rebwar/ASP.NET-Core-Identity-Samples





asp net identitycustom password validatorasp net coreidentityentity framework core
برنامه نویس ASP.NET | عکاس منظره
شاید از این پست‌ها خوشتان بیاید