سؤال

عند تجاوز العضوية Providider والاتصال بها مباشرة ، هل هناك طريقة لملء معلمة Config Config NameValuEcollection لطريقة التهيئة دون البحث يدويًا من خلال ملف التكوين للإعدادات؟

من الواضح أن هذا التهيئة يتم استدعاؤه بواسطة ASP.NET ويتم ملء التكوين في مكان ما. لقد قمت بتطبيق عضويتي provider ويعمل بشكل جيد من خلال البناء في الضوابط. أرغب في إنشاء مثيل جديد لموفره وإجراء مكالمة إليه مباشرة ، لكنني لا أريد حقًا تحليل .Config لـ AsmpisthipProvider ، إنه اسم سلسلة الاتصال ثم سلسلة الاتصال إذا تم القيام به بالفعل في مكان ما .

هل كانت مفيدة؟

المحلول

TVANFOSSON- شكرا للمساعدة. (إذا حصلت على 15 نقطة ضرورية ، فسأصوت لك)

من الرابط الخاص بك تمكنت من معرفة ذلك. اتضح أن المعلمة الثانية إلى الإجراء التهيئة كانت قائمة المعلمات من المزود ويمكن الوصول إليها بالطريقة التالية:

string configPath = "~/web.config";
Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
MembershipSection section = (MembershipSection)config.GetSection("system.web/membership");
ProviderSettingsCollection settings = section.Providers;
NameValueCollection membershipParams = settings[section.DefaultProvider].Parameters;
Initialize(section.DefaultProvider, membershipParams);

نصائح أخرى

لست متأكدًا من سبب رغبتك في إنشاء واحدة جديدة ، ولكن إذا قمت بإنشائها بنفسك ، فستحتاج إلى قراءة تكوين الويب والحصول على القيم بنفسك لتمريرها () حيث يتم ذلك خارج الفصل. أنا متأكد ، رغم ذلك ، أن هناك بالفعل معالج قسم لهذا القسم ، لذلك يجب أن يكون مجرد مسألة:

MembershipSection section  = WebConfigurationManager.GetSection("membership");

ثم ابحث عن مزودك والوصول إلى خصائصه لإنشاء NameValueCollection. لا أعتقد أنه سيتعين عليك كتابة أي رمز لتحليل قسم التكوين.

ها هو العضوية الوثائق في MSDN. ابحث من هناك.

في أي حال ، يجب ألا تقوم بإنشاء مثيل من العضوية. يتم إنشاء وتهيئة بواسطة البنية التحتية القياسية ASP.NET. يمكنك الوصول إليه بواسطة رمز مثل هذا:

var customermembership = العضوية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top