![](/img/trans.png)
[英]How pass HttpClient response with web api response in asp.net core
[英]How can pass string with the “forbidden” response in .net core 2.2 web API
它工作正常:
context.Result = new ForbidResult();
但我想傳遞一條帶有“禁止”響應的消息,如下所示:
context.Result = new ForbidResult("Forbidden");
在 .net core 2 web API 中。 但是當我在上面寫這行代碼時,我得到了
500內部服務器錯誤
因此,任何人都可以幫助我如何執行上述代碼行。
示例代碼
public class ClaimRequirementFilter : Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
// working code
context.Result = new ForbidResult();
// Code with error (500 Internal Server Error)
context.Result = new ForbidResult("Forbidden");
}
}
我創建了這兩個類(1.CustomError 和 2.CustomUnauthorizedResult)並使用這些類來處理授權。 在這里您可以傳遞動態消息和狀態代碼。
public class CustomError
{
public string Error { get; }
public CustomError(string message)
{
Error = message;
}
}
public class CustomUnauthorizedResult : JsonResult
{
public CustomUnauthorizedResult(string message, int statusCode) : base(new CustomError(message))
{
StatusCode = statusCode;
}
}
public class ClaimRequirementFilter : Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
context.Result = new CustomUnauthorizedResult("Authorization failed.", statusCode:403);
}
}
只需使用ObjectResult即可返回帶有狀態代碼的自定義響應。
看語法,
return new ObjectResult("Message") {StatusCode = YOUR_STATUS_CODE };
例子:
public async Task<IActionResult> Post([FromBody] SomeData _data)
{
// do your stuff
// return forbidden with custom message
return new ObjectResult("Forbidden") { StatusCode = 403};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.