أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

إنهاء SSL وASP.NET

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

910444
إخلاء مسؤولية من محتوى قديم في قاعدة المعارف
عن تقديم الدعم التقني لهاو لذلك تظهر هذه المقالة كما هي و لن يتم تحديثها Microsoft تمت كتابة هذه المقالة بخصوص منتجات توقفت
عمود الصوت دعم ASP.NET

إنهاء SSL وASP.NET

لتخصيص هذا العمود إلى احتياجاتك، نحن نريد دعوة بإرسال الأفكار حول المواضيع التي تهمك و الموجهة المشكلات التي تريد راجع مقالات قاعدة المعارف في المستقبل والأعمدة الصوت الدعم. يمكنك إرسال باستخدام نموذج Ask For It الأفكار والملاحظات. يوجد أيضاً ارتباط إلى النموذج في أسفل هذا العمود.
مرحباً بك في عمود الصوت دعم ASP.NET! يكون الاسم الخاص بي Jerry Orman. تم مع Microsoft أكثر من خمس سنوات ثم قضته معظم الوقت الخاصة بي تركز على تقنيات ويب ذات الصلة مثل Microsoft FrontPage و Microsoft تقنيات ومنتجات Sharepoint. قمت المستغرق السنة الأخيرة العمل مع Microsoft ASP.NET مثل مهندس دعم. هذا الشهر استخدم سأجعل للتحدث حول إنهاء SSL ASP.NET. وبشكل خاص، أرغب في التركيز على المشكلات التي تنتج من تكوين الملقم. نحن تقوم بالانتقال إلى إلقاء نظرة على إنهاء SSL و بعض تأثيرات جانبية هذا التكوين على التطبيق الخاص بك.

إنهاء SSL تكوين فيه ملقم ويب يستخدم التعليمات البرمجية ترسل وتتلقى حركة المرور عبر HTTP ويتم وجود جهاز بين ملقم ويب الخاص بك العملاء التي بتشفير فك تشفير البيانات. في هذا التكوين، يتم العملاء إرسال حركة مرور HTTPS وتلقيها. تكوين SSL إنهاء مشابه لما يلي:
العميل < — HTTPS — > الجهاز SSL < — HTTP — > ملقم ويب
الآن دعنا انتقل عبر المسألتين التي تأتي في Microsoft ASP.NET 2.0 مع هذا التكوين بعض الطرق كمحاولة للتغلب على السلوك.

المشكلة الأولى

عند المرور فوق عنصر قائمة في عنصر تحكم ASP.NET 2.0 قائمة تحصل على رسالة الخطأ التالية:
تحتوي هذه الصفحة على عناصر آمنة وغير غير الآمنة. هل تريد عرض العناصر غير آمنة
التطبيق من المفترض أن تكون آمنة و كنت تستخدم بروتوكول SSL لم تقم بإضافة أي عناصر التحكم التي يتم تقديم مسار مطلق إلى HTTP عنوان. ما المقصود مع هذه الرسالة ؟

حسنًا، تكون المشكلة أن عنصر تحكم قائمة emits بعض JavaScript يستخدم كائن iFrame لإنشاء القائمة تحرك السحب. يجب عليك إعطاء الإطار محدد بداية. لتجنب إجراء جولة غير ضرورية إلى ملقم SSL غير سيناريوهات يستخدم البرنامج النصي حول: فارغة لـ URL. ومع ذلك، المستعرض يعتبر هذا عنوان مؤمنة بحيث الحصول على خطأ أعلاه. لمزيد من المعلومات حول هذه المشكلة من Microsoft Windows SharePoint Services انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
837850ظهور رسالة "تحتوي هذه الصفحة على عناصر آمنة وغير غير الآمنة" عند النقر فوق طريقة عرض "المستكشف" في مكتبة مستندات في Windows SharePoint Services أو في SharePoint Team Services من Microsoft
ذكر بشكل صريح وحدات السيناريو غير SSL لأن إذا تم تلقي ملقم ويب حركة مرور HTTPS بدلاً من جهاز SSL ، JavaScript emits عنصر تحكم قائمة إضافة سطر من التعليمات البرمجية لتعيين مصدر كائن iFrame إلى عنوان HTTPS من صفحة على الملقم. هذا ببدء طلب آخر ولكن يمنع ظهور رسالة خطأ. إذا كنت تقوم نشر في هذا النوع من بيئة يمكنك فرض إضافة JavaScript لمنع ظهور رسالة الخطأ عن طريق إضافة هذه التعليمة البرمجية إلى الصفحة التي تحتوي على عنصر تحكم قائمة.
 <script runat="server">   protected override void Render(HtmlTextWriter writer)    {        Page.ClientScript.RegisterStartupScript(typeof(Page), "MenuHttpsWorkaround",         Menu1.ClientID + "_Data.iframeUrl='https://myserver/someblankpage.htm';", true);        base.Render(writer);   }</script> 
وبشكل مثالي، يجب أن القائمة في فئة MasterPage أو فئة UserControl ، وإضافة قد هذه التعليمة البرمجية مرة واحدة فقط.

المشكلة 2

قد تجد ذلك عندما يكون لديك سمة requireSSL<forms> تعيين العنصر إلى "صواب" ، الملقم يستجيب مع توجيه المتكررة إلى صفحة تسجيل الدخول FormsAuthentication. يحدث هذا بسبب تغيير في طريقة معالجة أسلوب FormsAuthenticationModule السمة requireSSL. إذا قمت بتعيين السمة requireSSL إلى true الأسلوب FormsAuthenticationModule بإنشاء ملف تعريف ارتباط التي تم تعيين سمة آمنة. (هذا السلوك هو نفسه كما في .NET Framework 1.1.) عند استخدام سمة آمن العميل سيتم فقط تمرير ملف تعريف الارتباط إلى الملقم إذا كان العميل يستخدم SSL. هذا الجزء رائعة ، لأن العميل مندهشاً يستخدم SSL. لنفترض أن لديك صفحة SecurePage.aspx لا يمكن للمستخدمين المجهولين الوصول. مع بروتوكول SSL و سمة requireSSL الذي ينتهي مع حركة المرور التالية على طلب أولي إلى SecurePage.aspx:
— > يجعل عميل طلب GET الخاص SecurePage.aspx.

<— يستجيب ملقم مع 302 HTTP (إعادة توجيه) إلى صفحة تسجيل الدخول.

— > يجعل عميل طلب GET الخاص Login.aspx.

<— يستجيب ملقم مع 200 موافق. يتم عرض صفحة تسجيل الدخول إلى العميل.

— > العميل بإجراء طلب POST على Login.aspx.

<— يستجيب ملقم مع 302 (إعادة توجيه) إلى SecurePage.aspx. يتم إرسال رأس ملف تعريف الارتباط مجموعة معسمة الأمان إلى العميل.

— > العميل بإجراء طلب GET SecurePage.aspx. يتم تمرير ملف تعريف الارتباط لأن العميل يستخدم SSL.

<— يستجيب ملقم مع 302 (إعادة توجيه) إلى صفحة تسجيل الدخول مرة أخرى.

يمكنك الحصول على إعادة التوجيه في الطلب الأخير لحدوث تغيير في فئة FormsAuthenticationModule. تمت إضافة الاختيار إضافية في ASP.NET 2.0 لتحديد ما إذا كان المستخدم قد تمرير على ملف تعريف ارتباط آمن عبر طلب غير SSL. إرجاع ASP.NET 2.0 فئة FormsAuthenticationTicket إذا تم تعيين الخاصية FormsAuthentication.RequireSSL إلى false أو إذا تم تعيين سمة Request.IsSecure إلى true.
  • يتم تعيين الخاصية FormsAuthentication.RequireSSL إلى false إذا تم تعيين سمة requireSSL إلى false في ملف التكوين.
  • يتم تعيين سمة Request.IsSecure إلى true إذا كان ملقم ويب يتلقى حركة مرور SSL.
منذ في هذا السيناريو، ملقم ويب لا يتلقى حركة مرور SSL وتعيين سمة requireSSL إلى true ، كلا تدقيقات إرجاع false. ونتيجة لذلك، لا يتم إرجاع فئة FormsAuthenticationTicket ثم تتم إزالة ملف تعريف الارتباط من مجموعة Request.Cookies.

طلب إجراء المستخدم مجهول في هذه المرحلة لأن الملقم لم يتم التحقق بعد من مؤهلات اعتماد المستخدم. كما يقوم بتمرير الطلب خلال خط أنابيب ASP.NET ، فئة UrlAuthorizationModule يتحقق ما إذا كان المستخدم الذي لديه الوصول إلى الصفحة. لأنه ليس لدى مستخدم مجهول حق الوصول إلى صفحة SecurePage.aspx فئة UrlAuthorizationModule بإرجاع رسالة خطأ 401 ("تم رفض الوصول") ، الذي ينتج إعادة توجيه إلى صفحة تسجيل الدخول.

لتجنب هذا السلوك أولاً لديك إزالة السمة requireSSL من <forms> العلامة في ملف التكوين. ثم يجب عليك تعيين سمة آمن برمجياً على FormsAuthentication ملف تعريف الارتباط. التعليمة البرمجية التالية بذلك لك، لكل ملف تعريف الارتباط FormsAuthentication و ملف تعريف ارتباط جلسة.
void Application_EndRequest(object sender, EventArgs e){     if (Response.Cookies.Count > 0)     {          foreach (string s in Response.Cookies.AllKeys)          {               if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")               {                    Response.Cookies[s].Secure = true;               }          }     }}
مراجع
لمزيد من المعلومات حول عنصر تحكم قائمة قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:لمزيد من المعلومات حول السمة requireSSL الخاصية FormsAuthentication.RequireSSL قم بزيارة موقع MSDN التالي:لمزيد من المعلومات حول السمة IsSecure الخاصية HttpRequest.IsSecureConnection قم بزيارة موقع MSDN التالي: لمزيد من المعلومات حول فئة FormsAuthenticationModule قم بزيارة موقع MSDN التالي:لمزيد من المعلومات حول فئة UrlAuthorizationModule قم بزيارة موقع MSDN التالي:

أتمنى أن تجد هذه المعلومات مفيدة عند استخدام SSL إنهاء و Microsoft ASP.NET. تذكر تكون الأعمدة "الصوت دعم" لك! دوماً تتردد في إرسال الأفكار على المواضيع التي تريدها تناولها في المستقبل أعمدة أو في المعارف باستخدام نموذج Ask For It.

تحذير: تمت ترجمة هذا المقال تلقائياً

خصائص

رقم الموضوع: 910444 - آخر مراجعة: 11/22/2007 03:46:24 - المراجعة: 1.3

  • Microsoft ASP.NET 2.0
  • kbmt kbhowto kbasp KB910444 KbMtar
تعليقات