سؤال

ولقد كتبت MembershipProvider مخصص يستخدم مخطط قاعدة بيانات مخصصة لتخزين الأعضاء، ولكن أواجه صعوبة في معرفة كيفية نشر الموفر. والملقم الهدف بلدي تشغيل IIS7، وأنا قادرة على التنقل إلى الحوار لإضافة صافي مزود المستخدم، ولكن بدلا من السماح لي لتحديد التجمع الذي يحتوي على مزود وثم الطبقة، فإنه يوفر المنسدلة مع اثنين من مقدمي MS مكتوب.

هل أحتاج إلى إسقاط التجمع بلدي في موقع معين بحيث صفي MembershipProvider واكتشافها من قبل IIS؟ إذا كان الأمر كذلك، ما حيث لا تحتاج في .dll أن تذهب؟ وإلا، كيف أقول ASP.Net لاستخدام بلدي MembershipProvider؟ كل سبيل المثال رأيت ببساطة يحيل اسم الفئة مؤهل بشكل كامل، ولكن لا تذكر لكيفية يحتاج الملف المراد نشرها.

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

المحلول

إذا نظرتم في ملف web.config للتطبيق الخاص بك، يجب أن يكون مقطع يسمى system.web. داخل أن هناك عنصر عضوية مع قائمة من مقدمي الخدمات. يجب أن تكون قادرا على إضافة مزود وتعيين موفر افتراضي هناك. بمجرد تسجيل مزود عضويتك في هذه الطريقة، يجب أن تكون قادرا على تحديد بأنها الافتراضية لهذا التطبيق من IIS أيضا.

<system.web>
    ...
    <membership defaultProvider="MyMembershipProvider" 
                    userIsOnlineTimeWindow="15">
        <providers>
            <add name="MyMembershipProvider"
                             type="Common.Auth.MyMembershipProvider, Common" 
                             connectionStringName="MyAuthDBConnectionString" 
                             enablePasswordRetrieval="true" 
                             enablePasswordReset="true" 
                             requiresQuestionAndAnswer="true" 
                             writeExceptionsToEventLog="false" />
        </providers>
    </membership>
    ...
</system.web>

وعنصر مقدمي يسمح لك بتسجيل مقدمي خدمات متعددة للاختيار من بينها. ميزة أخرى هي أنه يمكنك مسح خارج موفري العضوية المسجلة في ملفات التكوين الأخرى على الجهاز. هذا يمكن أن يجعل تكوين التطبيق الخاص بك أقل عرضة للخطأ في وقت لاحق. للقيام بذلك، قم بإضافة <واضح /> عنصر قبل أول مزود عضوية (و<إضافة /> عنصر) في القائمة.

<system.web>
    ...
    <membership defaultProvider="MembershipProvider1">
        <providers>
            <clear />
            <add name="MembershipProvider1" ... />
            <add name="MembershipProvider2" ... />
        </providers>
    </membership>
    ...
</system.web>

إذا كنت تريد أن تسجل نفس مزود مع تطبيقات ويب متعددة فقط باستخدام إدارة IIS، سوف تحتاج إلى وضع التجميع في GAC وإضافة الموفر لواحدة من ملفات الجهاز التكوين بدلا من ذلك. هذا هو عادة المزيد من العمل لفائدة تذكر عند نشر تطبيق واحد.

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