ASP.NET MVC:检查是否来自同一项目和指定的控制器和操作的引用

问题描述

我正在开发一个 ASP.NET MVC 项目。我有一个包含静态 base64 图像的操作。

我希望此操作仅在从 myproject/allowedController/allowedAction 调用时呈现正确的图像,否则显示不同的图像。

我也想限制是否有人登录我的网站并直接打开图片网址,但引用总是返回为空。

我尝试使用此代码

string host = Request.ServerVariables["HTTP_REFERER"].ToString().Replace("http://","").Replace("https://","").ToLower();   
//string host = Request.UrlReferrer.Host.ToString().Replace("http://","").ToLower();

 string localPath = Request.UrlReferrer.LocalPath.ToString().ToLower();

 if (host != "www.mydomain.com")
 {
       throw new Exception("unauthorized request code 1");
 }

 if (!(localPath.StartsWith("/allowedController/allowedAction")))
 {
        throw new Exception("unauthorized request code2");
 }

主机总是抛出错误

未将对象引用设置为对象的实例

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)