在C# API控制器中获取请求来源,可以通过以下方式实现:
- 使用HttpContext对象获取请求来源:using Microsoft.AspNetCore.Http;
public class MyController : ControllerBase
{
public IActionResult MyAction()
{
var referer = HttpContext.Request.Headers["Referer"].ToString();
// referer即为请求来源
return Ok(referer);
}
}这种方式通过访问HttpContext对象的Request属性,然后获取Headers中的Referer字段,即可获取请求来源。
- 使用Request对象获取请求来源:public class MyController : ControllerBase
{
public IActionResult MyAction()
{
var referer = Request.Headers["Referer"].ToString();
// referer即为请求来源
return Ok(referer);
}
}这种方式直接通过访问Request对象的Headers属性,获取Headers中的Referer字段,同样可以获取请求来源。
- 使用ActionFilterAttribute过滤器获取请求来源:using Microsoft.AspNetCore.Mvc.Filters;
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
var referer = context.HttpContext.Request.Headers["Referer"].ToString();
// referer即为请求来源
base.OnActionExecuting(context);
}
}
[MyActionFilter]
public class MyController : ControllerBase
{
public IActionResult MyAction()
{
// ...
return Ok();
}
}这种方式通过自定义一个继承自ActionFilterAttribute的过滤器,在过滤器中获取请求来源。
以上是在C# API控制器中获取请求来源的几种常见方式。根据具体的业务需求和开发场景,选择合适的方式来获取请求来源。