gpt4 book ai didi

asp.net - 中止/取消 ActionFilter 的操作和响应的最佳方法

转载 作者:行者123 更新时间:2023-12-03 01:23:05 26 4
gpt4 key购买 nike

从 ActionFilter 中止/取消操作的最佳方式

我有这个 ActionFilter,它应该立即结束连接并返回 401 Unauthroized:

public class SignInRequired : ActionFilterAttribute 
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// User is verified, continue executing action

if (Acme.Web.CurrentUser != null)
{
return;
}

// End response with 401 Unauthorized

var response = HttpContext.Current.Response;
response.StatusCode = (int)HttpStatusCode.Unauthorized;
response.End();

// Prevent the action from actually being executed

filterContext.Result = new EmptyResult();
}
}

我了解了如何通过设置 'context.Result = new EmptyResult()` 来取消执行操作 here ,但我不确定这是否是刷新响应并关闭连接的最佳方法。

最佳答案

设置响应将意味着不会调用该操作。

public override void OnActionExecuting(HttpActionContext actionContext)    
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
}

正如其他答案所说,身份验证应该使用 AuthorizeAttribute 完成(文档 for Web.APIfor MVC )。

关于asp.net - 中止/取消 ActionFilter 的操作和响应的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5186425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com