2016-05-02 53 views
0

在我們的ASP.NET MVC C#web應用程序中,如果用戶未通過某種身份驗證檢查,我們通常希望將通用未授權消息作爲JSON響應返回給AJAX調用。我首先想到的是做這種方式:自動提供HttpUnauthorizedResult(401錯誤)默認StatusDescription而不是null

return Json(new HttpUnauthorizedResult().StatusDescription); 

的問題是,在StatusDescription屬性null默認。如果我們可以以某種方式重載構造函數來實例化此屬性以獲得一些通用未授權消息(如果沒有提供任何消息),那將是非常好的,但我無法弄清楚如何去做。

有誰知道如何實現這個?如果這不是一個好方法,請隨時提出一個更好的方法來實現AJAX調用中的Http錯誤消息。

回答

1

HttpUnauthorizedResult有一個接受描述的構造函數。你可以使用它Msdn

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

如果消息總是可以從HttpUnauthorizedResult繼承相同的:

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

我知道我可以明確地規定它每一次,但我們希望沒有我們想用的時候就複製此消息。如果沒有提供它,它會自動具有默認值是我的目標。 –

+0

您可以定義自己的繼承自HttpUnauthorizedResult的類並提供默認消息。 – ema

1

您可以創建一個從HttpUnauthorizedResult和鏈條繼承基類構造函數的類。

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

然後,你可以只是做:

return Json(new HttpUnauthorizedResultWithDefaultText()); 
相關問題