سؤال

كما ترون هذا هو السؤال من غير المطور على شبكة الإنترنت.أود أن يكون هناك صفحة ASPX تحت ظروف معينة ، يمكن أن تولد خطأ 401 من قانون.من الناحية المثالية سوف تظهر IIS الصفحة القياسية.

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

المحلول

Response.StatusCode ثم - إذا كنت بحاجة إلى وقف التنفيذ - دعوة Response.End ( ) .

نصائح أخرى

Response.StatusCode = 401;
Response.End();

أعتقد أنا لا تزال تفضل:

throw new HttpException(401, "Auth Failed")

أنا لا أعتقد Response.StatusCode طريقة مشغلات مخصص أخطاء محددة في شبكة الإنترنت.config, على سبيل المثال

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
     <error statusCode="401" redirect="AuthFailed.htm" />
     <error statusCode="403" redirect="NoAccess.htm" />
     <error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>

رمي جديد استثناء بالتأكيد يتسبب في أخطاء مخصص.

أيضا ، قد يكون استخدام تطبيق على نطاق تسجيل الخطأ مرفق مثل ELMAH أو شيئا و لا أعتقد Response.StatusCode طريقة تسجيل هناك إما.

ملاحظة: أرى الآن مسألة: قال ، من الناحية المثالية ، معيار IIS صفحة الخطأ ينبغي أن تظهر.ومن الواضح أن صفحات خطأ مخصصة هي لا يريد.أود أن استخدام Response.StatusCode طريقة في هذه الحالة.

يجب أن تكون قادرا على استخدام ما يلي ، وفقا MSDN.

Throw New HttpException(401, "Auth Failed")

تحرير بعد رؤية الردود الأخرى وضع رمز الحالة سيكون أكثر ملاءمة.

وتعليق واحد إضافي.

إذا جزء من الصفحة تمت بالفعل تم كتابتها إلى المخزن المؤقت الناتج ومن ثم فمن المهم أن كنت واضحا أي محتوى مخزنة أو الصفحة قد لا تظهر بشكل صحيح.

وهذا هو المرجح جدا في بيئة قالب. مثلا الصفحات الرئيسية ...

Response.ClearContent();
Response.StatusCode = 401;
Response.End();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top