البرمجة

إنشاء UserManager خارج نظام حقن الإعتماديات

لإنشاء UserManager خارج نظام حقن الإعتماديات المضمن، يجب عليك توفير معظم الإعتماديات التي يحتاجها UserManager للعمل بشكل صحيح. في مثالك، تبدو الإعتماديات المهمة هي IUserStore, IPasswordHasher, ILookupNormalizer, IdentityErrorDescriber, و ILogger>. ومعظم هذه الإعتماديات لديها تطبيقات افتراضية يمكنك استخدامها إذا لم تكن بحاجة لإجراء تخصيصات خاصة.

في حالتك، يمكنك استخدام البناء الافتراضي لمعظم الإعتماديات التي ليست لديك تخصيصات لها. هناك تطبيقات افتراضية لكل من IPasswordHasher, ILookupNormalizer, IdentityErrorDescriber, و ILogger> يمكن استخدامها دون الحاجة إلى إنشاء تطبيقات جديدة. بالنسبة لـ IUserStore, يمكنك استخدام UserStore كما فعلت في مثالك.

للإشارة، إليك كيف يمكنك إنشاء UserManager في مثالك:

csharp
public void Init() { // tenant contains connection string context = new ApplicationDbContext(tenant); var userStore = new UserStore(context); var options = Options.Create(new IdentityOptions()); var passwordHasher = new PasswordHasher(); var userValidators = new List>(); var passwordValidators = new List>(); var keyNormalizer = new UpperInvariantLookupNormalizer(); var errors = new IdentityErrorDescriber(); var services = new ServiceCollection().BuildServiceProvider(); var logger = new Logger>(new LoggerFactory()); userManager = new UserManager( userStore, options, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger ); }

هذا الكود يستخدم تطبيقات افتراضية للإعتماديات التي لا تتوفر لديك تخصيصات لها، مما يسمح لك بإنشاء UserManager خارج نظام حقن الإعتماديات المضمن.

المزيد من المعلومات

بالطبع، إليك بعض المعلومات الإضافية حول إنشاء UserManager خارج نظام حقن الإعتماديات المضمن:

  1. IUserStore: يُستخدم للوصول إلى بيانات المستخدمين. يمكنك استخدام UserStore الافتراضي لتخزين معلومات المستخدمين في قاعدة البيانات.

  2. IOptions: يستخدم لتكوين سلوك UserManager. يمكنك استخدام Options.Create(new IdentityOptions()) لاستخدام الإعدادات الافتراضية.

  3. IPasswordHasher: يستخدم لتشفير كلمات المرور. يمكنك استخدام new PasswordHasher() لاستخدام مشفر كلمات المرور الافتراضي.

  4. IEnumerable> و IEnumerable>: تستخدم لتحديد القواعد التي يجب أن تتبعها كلمات المرور وبيانات المستخدم. يمكنك تمرير قائمة فارغة إذا لم تحتاج إلى تخصيصات خاصة.

  5. ILookupNormalizer: يستخدم لتوحيد النصوص. يمكنك استخدام new UpperInvariantLookupNormalizer() للاستخدام الافتراضي.

  6. IdentityErrorDescriber: يُستخدم لتوفير رسائل الخطأ القياسية. يمكنك استخدام الكائن الافتراضي new IdentityErrorDescriber().

  7. IServiceProvider: يستخدم للوصول إلى خدمات إضافية إذا كنت بحاجة إلى ذلك. يمكنك استخدام new ServiceCollection().BuildServiceProvider() لإنشاء خدمة مزود الخدمات الافتراضي.

  8. ILogger>: يستخدم لتسجيل الأحداث والأخطاء. يمكنك استخدام new Logger>(new LoggerFactory()) للاستخدام الافتراضي.

باستخدام هذه المعلومات، يمكنك إنشاء UserManager خارج نظام حقن الإعتماديات المضمن بطريقة صحيحة وفعالة.

زر الذهاب إلى الأعلى