asp.net-mvc-2 – 如何防止IIS7处理HTTP状态码401?
发布时间:2020-05-24 05:45:56 所属栏目:asp.Net 来源:互联网
导读:我正在使用我的ASP.NET MVC 2项目.我创建异常过滤器来捕获用户没有权限查看某些操作时发生的未经授权的访问异常. [CustomError(typeof(UnauthorizedAccessException), Error, UnauthorizedAccess)]public class MyController : BaseController{} 抛出异常之后
|
我正在使用我的ASP.NET MVC 2项目.我创建异常过滤器来捕获用户没有权限查看某些操作时发生的未经授权的访问异常. [CustomError(typeof(UnauthorizedAccessException),"Error","UnauthorizedAccess")]
public class MyController : BaseController
{
}
抛出异常之后,我的过滤器将转移到以下方法的配置控制器/操作. public ActionResult UnauthorizedAccess(ExceptionContext context)
{
Response.StatusCode = CustomHttpStatusCode.UnauthorizedUser;
return View(model);
}
最后,在ASP.NET应用程序结束此请求之前,将调用位于Global.ascx中的以下方法将自定义HTTP状态代码更改为HTTP状态401(未经授权的访问). public void Application_EndRequest(object sender,EventArgs e)
{
if (Response.StatusCode == CustomHttpStatusCode.UnauthorizedUser)
{
Response.StatusCode = 401;
}
}
一切都在我的机器上工作正常(IIS 7.5).但它在我的部署网站上不起作用.它仍然返回纯文本“您没有权限查看此目录或页面”.而不是我的自定义错误页面. PS.以下配置是我当前这个case的web.config. <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<customErrors mode="On"></customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="502" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="412" subStatusCode="-1" />
<remove statusCode="406" subStatusCode="-1" />
<remove statusCode="405" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
</httpErrors>
</system.webServer>
</configuration>
解决方法我刚刚找到了解决这个问题的方便.我只是添加新的设置到web.config文件,如下面的代码.一切都在我的部署网站上运行正常.<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="PassThrough">
<remove statusCode="502" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="412" subStatusCode="-1" />
<remove statusCode="406" subStatusCode="-1" />
<remove statusCode="405" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
</httpErrors>
</system.webServer>
</configuration>
所以我可以在纯文本和JSON响应中创建自定义错误页面. 欲了解更多信息:HttpErrorsSection Class PS.但是我在IIS管理器的“错误页面”功能中找不到existingResponse属性. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC ActionResult背后的推理是一个
- asp.net – 如何使用AntiXss Library正确清理内容?
- asp.net-mvc – 应用程序级排队/网站流量管理
- asp.net-mvc – 使用IIS 7重写模块重写Ampersand URL
- asp.net-mvc – 如何为ASP.NET 4.5 Web API创建MultipartFo
- 如何在ASP.net中取消事件冒泡?
- 模型视图控制器 – 如何在自定义MembershipProvider上调用I
- asp.net-mvc-routing – ASP MVC 5属性路由VS.基于公约的路
- 在ASP.Net MVC应用程序中放置初始化代码的位置?
- asp.net-mvc – MVC 4 _Layout.cshtml viewmodel
推荐文章
站长推荐
- ASP.NET 2.5前缀ctl00和ASP.NET 4不是前缀ctl00
- asp.net-mvc – 神秘的ASP.NET MVC Action高延迟
- asp.net-mvc – 使用ASP.NET MVC剃刀的自定义控件
- asp.net – User.GetUserId()在控制器的构造函数
- asp.net-mvc – ASP.net MVC:在RenderAction中获
- ASP.NET Web API,Web服务发现和客户端创建
- asp.net邮件添加ReplyTo
- asp.net-mvc – 从控制器的操作调用集线器方法
- asp.net – 转义HTML实体并避免WebForm标签中的H
- asp.net-mvc – Jasmine在一个单独的测试项目中
热点阅读
