[英]How to generate an 401 error programmatically in an ASP.NET page
如您所見,這是非Web開發人員提出的問題。 我希望有一個ASPX頁面,在某些情況下,該頁面可以從代碼生成401錯誤。 理想情況下,它將顯示IIS標准頁面。
Response.StatusCode = 401;
Response.End();
設置Response.StatusCode ,然后設置-如果需要停止執行,請調用Response.End() 。
我想我還是更喜歡:
throw new HttpException(401, "Auth Failed")
我認為Response.StatusCode
方法不會觸發在web.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
方法。
另一條評論。
如果頁面的一部分已經被寫入輸出緩沖區,那么清除任何緩沖的內容很重要,否則頁面可能無法正確顯示。
這很可能在模板化環境中。 例如母版頁...
Response.ClearContent();
Response.StatusCode = 401;
Response.End();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.