سؤال

لدي دليل واحد في موقع ASP.NET الخاص بي الذي أحتاج إلى تمكين SSL. لجميع الدلائل الأخرى، لا أريد تمكين SSL.

باستخدام IIS، فقد راجعت القناة الآمنة (SS) وتشفير تشفير 128 بت للمجلد الذي أريد طلب SSL.

الآن، عندما تكون هناك أنواع مستخدمين في "http: //"، للحصول على دليلي الآمن، أريد إعادة توجيهها تلقائيا إلى "HTTPS: //". لقد جربت نهجين، وكلاهما فشل.

نهج 1: تغيير صفحة أخطاء IIS المخصصة للدليل ل 403؛ 4 إلى عنوان URL الذي يشير إلى: "/ rentranet2/sslredirect.aspx". سيجورهم SSLredirect إلى الموقع الصحيح. عندما أفعل ذلك، أحصل على خطأ "لا يمكن تنفيذ الطلب المحدد من تجمع التطبيقات الحالية"، على الرغم من أن عنوان URL هو جزء من موقع الويب وليس لدي سوى تجمع تطبيقات واحد فقط لموقع الويب بالكامل (وليس DefaultApPool).

نهج 2: إضافة Web.config في الدليل للإسراع في رمز الخطأ 403. يشبه هذا:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <customErrors defaultRedirect="../Default.aspx" mode="On">
            <error statusCode="403" redirect="../SSLRedirect.aspx" />
        </customErrors>
    </system.web>
</configuration>

ولكن عندما أجري هذا التغيير، أحصل دائما على 403.4 الافتراضي المحدد في IIS.

أي اقتراحات؟

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

المحلول

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

أ) إعادة تكوينها بحيث يكون لديك حقا تجمع تطبيق واحد فقط للموقع بأكمله،

ب) قم بخدمة صفحة الخطأ من الدليل الذي يوجد في نفس مجموعة التطبيقات مثل الصفحة التي تولد الخطأ

ج) قرص التسجيل لإغلاق هذا الخطأ: تعيين IGNOREAPPPoolForCustomErrors إلى 1 في HKLM System CurrentControlSet Services W3SVC Parameters. يرى http://blogs.msdn.com/b/rakkimk/archive/2006/09/01/735684.aspx.

نهج 2: تستخدم الأخطاء المخصصة في Web.config فقط إذا كان ASP.NET يتعامل مع الخطأ. أعتقد أن IIS ليس إشراك محرك التعامل مع ASP.NET هنا لأن فحص SSL فشل. لذلك هذا ببساطة لن ينجح هنا.

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