عمود الصوت دعم ASP.NET

إنهاء SSL و ASP.NET

لتخصيص هذا العمود إلى احتياجاتك، نحن نريد دعوة منك إرسال الأفكار حول مواضيع تهم لك والمسائل التي تحتاج إلى مشاهدة الموجهة في المستقبل مقالات قاعدة المعارف والأعمدة "الصوتية دعم". يمكنك إرسال أفكارك وملاحظات باستخدام نموذج طلب لذلك . يوجد أيضا ارتباط إلى النموذج في أسفل هذا العمود.
مرحبا بكم في عمود الصوت دعم ASP.NET! اسمي جيري الأورمان. لقد كنت مع Microsoft لأكثر من خمس سنوات، وقد قضى معظم وقت تركز على التكنولوجيات ذات الصلة ويب مثل Microsoft FrontPage وتقنيات ومنتجات SharePoint. لقد قضيت العام الماضي في العمل مع Microsoft ASP.NET كمهندس دعم. هذا الشهر، سوف نتحدث عن إنهاء SSL و ASP.NET. على وجه الخصوص، أريد أن أركز على المشكلات التي تنتج عن تكوين الملقم. سنقوم بإلقاء نظرة على "إنهاء خدمة تصميم المواقع" وبعض الآثار الجانبية لهذا التكوين في التطبيق الخاص بك.

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

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

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

أيضا، هذه المشكلة أنه
عنصر تحكم قائمة تصدر بعض JavaScript التي تستخدم كائن iFrame لإنشاء القائمة العابرة. يجب أن تعطي الإطار URL بداية. لتجنب إجراء جولة غير ضرورية إلى الملقم لسيناريوهات غير SSL، يستخدم البرنامج النصي
حول: فارغة ل URL. ومع ذلك، المستعرض يعتبر هذا عنوان غير أمن، حتى تحصل على خطأ أعلاه. لمزيد من المعلومات حول هذه المشكلة فيما يتعلق بنظام التشغيل Microsoft Windows SharePoint Services، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

837850 تتلقى رسالة "تحتوي هذه الصفحة على عناصر آمنة وغير آمنة" عند النقر فوق "طريقة عرض المستكشف" في مكتبة مستندات في Windows SharePoint Services أو في SharePoint Team Services من Microsoft

أذكر بوضوح سيناريوهات غير SSL لأنه، إذا كان ملقم ويب تلقي حركة مرور HTTPS بدلاً من جهاز SSL، JavaScript التي تصدر قائمة التحكم إضافة سطر من التعليمات البرمجية لتعيين مصدر كائن 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 ، ويمكن إضافة هذه التعليمة البرمجية مرة واحدة فقط.

المشكلة الثانية

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

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

-> يقوم عميل طلب GET ل Login.aspx.

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

-> يقوم عميل طلب POST ل Login.aspx.

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

-> يقوم عميل طلب GET ل SecurePage.aspx. يتم تمرير ملف تعريف الارتباط لأن العميل يستخدم SSL.

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

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

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

لتجنب هذا السلوك، يجب عليك أولاً إزالة السمة requireSSL من العلامة < النماذج > في ملف التكوين. ثم يجب عليك تعيين سمة آمنة على ملف تعريف الارتباط 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 التالي:لمزيد من المعلومات حول السمة عسكر HttpRequest.IsSecureConnection الخاصية، قم بزيارة موقع Msdn التالي:لمزيد من المعلومات حول فئة فورمساوثينتيكاتيونمودولي ، قم بزيارة موقع Msdn التالي:لمزيد من المعلومات حول فئة أورلاوثوريزاتيونمودولي ، قم بزيارة موقع Msdn التالي:

ويحدوني الأمل أن تجد هذه المعلومات مفيدة عند استخدام Microsoft ASP.NET وإنهاء SSL. تذكر، تكون الأعمدة "الصوتية دعم" لك! أنه دائماً، لا تتردد في تقديم أفكار بشأن المواضيع التي تريد إرسال في المستقبل الأعمدة أو في استخدام قاعدة المعارف
نموذج طلب لذلك .
خصائص

رقم الموضوع: 910444 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 2

تعليقات