在ASP.NET MVC中,我们可以使用HttpContext
对象来检查当前请求的引用者是否来自同一项目和指定的控制器和操作。以下是一个示例代码:
using System.Web;
public class MyController : Controller
{
public ActionResult MyAction()
{
// 获取当前请求的URL
string referrerUrl = Request.UrlReferrer?.AbsolutePath;
// 检查是否来自同一项目
bool sameProject = referrerUrl.StartsWith(Request.ApplicationPath);
// 检查是否来自指定的控制器和操作
bool sameControllerAction = referrerUrl.Contains("/MyController/MyAction");
if (sameProject && sameControllerAction)
{
// 引用者来自同一项目和指定的控制器和操作
// 执行你的代码逻辑
}
else
{
// 引用者不符合要求
// 执行其他逻辑或返回错误信息
}
// 返回结果
return View();
}
}
在上面的代码中,我们首先获取当前请求的引用者URL,然后使用StartsWith
方法检查是否来自同一项目,使用Contains
方法检查是否来自指定的控制器和操作。根据检查结果,我们可以执行相应的代码逻辑或返回错误信息。
请注意,HttpContext
对象和Request
对象可以在控制器类中直接访问,无需额外的引用或配置。