كيف أقوم بعكس [Contrantttps (إعادة التوجيه = صحيح)] في ASP.NET MVC

StackOverflow https://stackoverflow.com/questions/1158214

  •  18-09-2019
  •  | 
  •  

سؤال

أعرف طريقة سهلة للوصول إلى صفحة SSL في ASP.NET MVC - عبر سمة [integle لكنني مرتبك قليلا بأفضل طريقة للقيام بالعكس.

لدي العديد من الروابط على موقعي في شريط رأس ومعظم هذه الروابط لا تحتاج إلى SSL ولا أريد استخدام SSL.

مشروع العقود الآجلة يجعل من السهل جدا إعادة توجيه تلقائيا إلى صفحة SSL مع [RequireSSL(Redirect=true)], ، لكن لا يبدو أنه يسهل الخروج من هذا السياق وإعادة توجيه تلقائيا إلى HTTP.

ماذا ينقصني؟

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

المحلول

أنت لا تفتقد أي شيء؛ لا توجد وظيفة خارج الصندوق لهذا. يمكنك بسهولة إنشاء الخاصة بك عن طريق أخذ مصدر مخصوم وتعديله.

نصائح أخرى

الإجابة من سؤال Dupe في مكان آخر:

كيفية الخروج من HTTPS إلى وضع HTTP في ASP.NET MVC.

الحذر: إذا اختار استخدام هذا النهج، فسيتم إرسال ملف تعريف ارتباط Auth Cookie الخاص بك عبر نص عادي بعد التبديل إلى HTTP، ويمكن أن يسرق ويستخدمه شخص آخر. انظر الى هذا. وبعد بمعنى آخر - إذا كنت تستخدم هذا للموقع المصرفي، فستحتاج إلى التأكد من التبديل إلى HTTP أول سجل المستخدم خارج.

public class DoesNotRequireSSL: ActionFilterAttribute 
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        {
                var request = filterContext.HttpContext.Request;
                var response = filterContext.HttpContext.Response;

                if (request.IsSecureConnection && !request.IsLocal) 
                {
                string redirectUrl = request.Url.ToString().Replace("https:", "http:");
                response.Redirect(redirectUrl);
                }
                base.OnActionExecuting(filterContext);
        }
    }

هذا يستحق القراءة (epecially لتحقيق الآثار الأمنية للتبديل مرة أخرى بلا مبالاة http من https :

SSL جزئيا تأمين تطبيقات الويب مع ASP.NET - لا MVC محددة ولكن المخاوف الأمنية ذات الصلة

موقع SSL الجزئي مع ASP.NET MVC - MVC ودية

إنها مشكلة معقدة بشكل عام. لا يزال لم يعثر على حل حقيقي لكل ما أريد القيام به، لكنه اعتقدت أن هذه المواد قد تساعد الآخرين.

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