Asp.net core 是否可以将操作方法限制为;仅重定向到access";?
使用ASP.NETCore3.1-MVC,我有了一个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
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");
}