C# 在ajax请求中,是否有服务器方式获取js document.location?

C# 在ajax请求中,是否有服务器方式获取js document.location?,c#,asp.net-mvc,asp.net-mvc-4,browser,client-server,C#,Asp.net Mvc,Asp.net Mvc 4,Browser,Client Server,上下文: 嗨,我正在使用的系统是这样定义授权的: 对于Mvc.sitemap中的任何节点,都存在关联的权限 现在,我正在使用一个自定义的Authorize属性,该属性将根据Mvc.sitemap中的权限检查授权 在任何人批评这种方法之前,我必须说我不能改变它,所有权限都已经写在Mvc.sitemap中了 在与站点地图文件中描述的每个页面关联的每个站点地图标记(xml标记)中,很容易恢复权限属性,但也有一些页面未在文件中描述。在站点地图文件中,有用于查看页面的定义,但没有用于部分查看页面的定义 问

上下文:

嗨,我正在使用的系统是这样定义授权的:

对于Mvc.sitemap中的任何节点,都存在关联的权限

现在,我正在使用一个自定义的Authorize属性,该属性将根据Mvc.sitemap中的权限检查授权

在任何人批评这种方法之前,我必须说我不能改变它,所有权限都已经写在Mvc.sitemap中了

在与站点地图文件中描述的每个页面关联的每个站点地图标记(xml标记)中,很容易恢复权限属性,但也有一些页面未在文件中描述。在站点地图文件中,有用于查看页面的定义,但没有用于部分查看页面的定义

问题:

在ajax请求中,是否有一种服务器方式来获取js
document.location


我的意思是,如果我收到ajax对部分视图的请求,在浏览器中,url(或在js:
document.location
)将是我的部分视图的“主”视图的url。因此,我可以在sitemap中搜索到此url(“主”url),而不是当前url(“部分视图url”)。

当然,任何数据都可以添加到ajax查询中。当前页面url通常在
referer
标题中发送,或者您可以编写一个包装器,始终将其作为参数包含。另一方面,您不能信任客户机发送到服务器的数据,当然也不应该根据这些数据做出权限决定

如果确实需要根据调用web服务的页面做出安全决策,可以在页面中创建一个令牌,并将其包含在每个ajax调用中。然后,您将验证令牌是否有效,以及它是否在继续请求之前授予调用方所需的访问权限