Asp.net core 是否可以将操作方法限制为;仅重定向到access";?

Asp.net core 是否可以将操作方法限制为;仅重定向到access";?,asp.net-core,asp.net-core-3.1,Asp.net Core,Asp.net Core 3.1,使用ASP.NETCore3.1-MVC,我有了一个HTTPPOST操作方法,可以从客户端获取数据并在数据库上运行。因为这个动作方法很长,不整洁,并且有很多重复的代码,所以我决定简化这个动作方法并使用重定向到。大概是这样的: [HttpPost] [ValidateAntiForgeryToken] [Route("MainActionMethod")] public async Task<IActionResult> MainActionMethod([From

使用ASP.NETCore3.1-MVC,我有了一个
HTTPPOST
操作方法,可以从客户端获取数据并在数据库上运行。因为这个动作方法很长,不整洁,并且有很多重复的代码,所以我决定简化这个动作方法并使用重定向到。大概是这样的:

[HttpPost]
[ValidateAntiForgeryToken]
[Route("MainActionMethod")]
public async Task<IActionResult> MainActionMethod([FromBody]object jsonData) 
 {
.  .  .  
       if (condition a) 
           return RedirectToAction("Action1");
       if (condition b) 
           return RedirectToAction("Action2");
.  .  . 
}

我如何才能禁用从浏览器访问
HTTP GET Action1
,并且只能通过其他操作方法或重定向到访问?

请求的
标题中有一个属性
Referer
。如果从浏览器访问,则其值为空。使用此选项确定后续处理过程

[HttpPost]
[ValidateAntiForgeryToken]
[Route("MainActionMethod")]
public async Task<IActionResult> MainActionMethod([FromBody]object jsonData)
{
   if (true) 
       return RedirectToAction("Action1");
}
public IActionResult Action1()
{
    StringValues header ;
    Request.Headers.TryGetValue("Referer",out header);
    if (header.Count==0)
    {
        return BadRequest();
    }
    return Ok("Action1");
}
[HttpPost]
[ValidateAntiForgeryToken]
[路线(“MainActionMethod”)]
公共异步任务MainActionMethod([FromBody]对象jsonData)
{
如果(真)
返回重定向到操作(“操作1”);
}
公共IActionResult操作1()
{
StringValues标头;
Request.Headers.TryGetValue(“Referer”,out header);
if(header.Count==0)
{
返回请求();
}
返回Ok(“行动1”);
}
[HttpPost]
[ValidateAntiForgeryToken]
[Route("MainActionMethod")]
public async Task<IActionResult> MainActionMethod([FromBody]object jsonData)
{
   if (true) 
       return RedirectToAction("Action1");
}
public IActionResult Action1()
{
    StringValues header ;
    Request.Headers.TryGetValue("Referer",out header);
    if (header.Count==0)
    {
        return BadRequest();
    }
    return Ok("Action1");
}