C# 确保只有计划任务才能调用控制器操作

C# 确保只有计划任务才能调用控制器操作,c#,asp.net,asp.net-mvc,security,scheduled-tasks,C#,Asp.net,Asp.net Mvc,Security,Scheduled Tasks,我的ASP.NET MVC 4网站有一个控制器操作,该操作将由计划任务每30分钟调用一次。为了方便起见,我用它来代替服务 该操作将执行一些基本的管理任务,我希望确保只有此计划任务才能调用它。计划的任务将调用www.mywebsite.com/Admin/PerformAdmin,如下所示 public ActionResult PerformAdmin() { // Only allow IP of my own server in if(Request.ServerVari

我的ASP.NET MVC 4网站有一个控制器操作,该操作将由计划任务每30分钟调用一次。为了方便起见,我用它来代替服务

该操作将执行一些基本的管理任务,我希望确保只有此计划任务才能调用它。计划的任务将调用
www.mywebsite.com/Admin/PerformAdmin
,如下所示

public ActionResult PerformAdmin()
{
     // Only allow IP of my own server in
     if(Request.ServerVariables["REMOTE_ADDR"] == "192.145.5.52") {
          // Do admin tasks
     }
     return View();
}

我认为这是一种可行的方法,但它看起来很混乱。是否有一种更可靠、经验证的方法来限制控制器对这样的自动呼叫的访问?

而不是使用您可以在控制器和计划任务之间使用的IP地址。这样,如果ip地址发生变化,您仍然可以连接


主要的概念是,您有一些密码、长密码短语或字符的随机组合,这些只有发送方和接收方知道。您需要确保有一个加密的连接,这样就不可能嗅探到共享机密。

谢谢,这是个好主意。安全连接是指通过HTTPS而不是HTTP发送请求吗?