自动提供HttpUnauthorizedResult(401错误)默认StatusDescription而不是null

时间:2016-05-02 19:06:01

标签: c# ajax asp.net-mvc asp.net-mvc-5 http-error

在我们的ASP.NET MVC C#Web应用程序中,如果用户未通过某种身份验证检查,我们通常希望将通用的Unauthorized消息作为对AJAX调用的JSON响应返回。我的第一个想法是这样做:

null

问题是,while (true) { Tasks } 属性默认为for (int i=0; i<value; i++) { // do ... } 。如果我们能以某种方式重载构造函数来实例化此属性以获得一些未经授权的消息(如果没有提供),那将是很好的,但我无法弄清楚如何去做。

有谁知道如何实现这个?如果这不是一个好方法,请随时建议在AJAX调用中实现Http错误消息的更好方法。

2 个答案:

答案 0 :(得分:1)

HttpUnauthorizedResult有一个构造函数,用于描述。您可以使用它Msdn

return Json(new HttpUnauthorizedResult("token not found..."));

如果消息始终相同,您可以从HttpUnauthorizedResult继承:

public class MyHttpUnauthorizedResult : HttpUnauthorizedResult 
{
    public MyHttpUnauthorizedResult() : base("token not found") {}
}

答案 1 :(得分:1)

您可以创建一个继承自HttpUnauthorizedResult并链接到基类构造函数的类。

public class HttpUnauthorizedWithDefaultText : HttpUnauthorizedResult
{
    public HttpUnauthorizedWithDefaultText() : base("Some default text")
    {
    }
}

然后你可以这样做:

return Json(new HttpUnauthorizedResultWithDefaultText());