如何返回更具体的HTTP代码(如401.X)
这是一篇关于一些扩展HTTP代码的文章:
IIS 7.0,IIS 7.5和IIS 8.0定义了几个HTTP状态代码,指示401错误的更具体原因。 以下特定HTTP状态代码显示在客户端浏览器中,但不显示在IIS日志中:
- 401.1 – 登录失败。
- 401.2 – 由于服务器配置登录失败。
- 401.3 – 由于资源上的ACL而未经授权。
- 401.4 – filter授权失败。
- 401.5 – ISAPI / CGI应用程序授权失败。
我需要一些自定义扩展HTTP代码,如下所示:
- 401.10 – 找不到用户
- 401.11 – 用户密码不匹配
- 401.12 – 用户帐户被锁定
- 401.13 – 用户帐户已过期
- …
如何从.NET MVC应用程序返回这些扩展的401错误代码?
在您的操作方法中,您可以手动设置状态代码:
Response.StatusCode = 401; Response.SubStatusCode = 10;
此外,您可以在System.Net中使用HttpStatusCode枚举:
Response.StatusCode = (int)HttpStatusCode.Unauthorized;
如何从.NET MVC应用程序返回这些扩展的401错误代码?
在用户将接收它们的意义上,您无法从应用程序返回它们,因为HTTP不支持子状态代码。
它们仅用于IIS日志记录和跟踪,仅返回“主要”状态代码。
使用Response.StatusCode
和Response.SubStatusCode
- 字典键和选择列表的值
- 有没有办法从非Web应用程序处理MVC视图(aspx文件)?
- 带有List 的JSON.NET的System.OutOfMemoryException
- 使用Application Insights时,AreaRegistration.RegisterAllAreas()永远不会完成
- ASP.NET MVC3 Razor在模型中查询(foreach中的foreach)
- LINQ to Entities中仅支持无参数构造函数和初始值设定项 – MVC / C#
- Aspx到Razor语法转换器?
- ASP.NET MVC StackOverflowException从布局中的xml加载动态菜单
- 处理回发数据中的数组 – MVC3