如何声明只能由另一个控制器函数访问的控制器函数并阻止直接访问(.NET Core)



我有一个名为Resend email的控制器函数。该函数应该只由支付函数调用,并且应该阻止直接访问,但当用户在该视图中时,用户应该能够重新加载该视图。

如何创建控制器功能来满足所有这些要求?(.NET Core MVC(

该函数应仅由支付函数调用,并应阻止直接访问

如果只想从另一个方法的代码中调用该方法/函数,而不是将其公开为操作方法,则可以将NonAction属性应用于该方法,如下所示。

public IActionResult ConfirmAccount()
{
//...
//code logic here
//...
return ResendEmail();
}
[NonAction]
public IActionResult ResendEmail()
{
//return Ok("success");
//...

此外,正如@CodeCaster在评论中提到的,您可以在泛型类库等中定义函数/方法,而不是在控制器中。

如果有必要使控制器方法只能从另一个视图访问,则可以使用以下检查:

public IActionResult CalculateBallance(int id)
{
// Gets information about the URL of the client's previous request
// that linked to the current URL.
if (String.IsNullOrEmpty(Request.Headers["Referer"]))
{
return NotFound();
}
// TODO: ...
}

相关内容

  • 没有找到相关文章

最新更新