jQuery地址从历史记录中删除最后一个Url

jQuery地址从历史记录中删除最后一个Url,jquery,ajax,asp.net-mvc,browser-history,jquery-address,Jquery,Ajax,Asp.net Mvc,Browser History,Jquery Address,我们正在ASP.NET MVC ajax应用程序中使用jQuery地址插件来处理深度链接和历史保存。每当您想要导航到新页面时,只需进行以下调用: $.address.value([some url]) 我们的应用程序有一个非常详细的用户管理系统,允许我们的用户定义哪些用户可以访问应用程序中的哪些功能。我们用一个定制的Authorize属性来修饰每个动作方法,该属性确定用户是否有权使用该动作方法提供的功能。授权工作得很好,但问题是,如果用户没有使用给定操作方法的权限,浏览器url仍然会反映,就好

我们正在ASP.NET MVC ajax应用程序中使用jQuery地址插件来处理深度链接和历史保存。每当您想要导航到新页面时,只需进行以下调用:

$.address.value([some url])
我们的应用程序有一个非常详细的用户管理系统,允许我们的用户定义哪些用户可以访问应用程序中的哪些功能。我们用一个定制的Authorize属性来修饰每个动作方法,该属性确定用户是否有权使用该动作方法提供的功能。授权工作得很好,但问题是,如果用户没有使用给定操作方法的权限,浏览器url仍然会反映,就好像他们在单击的链接页面上一样

例如,如果url/SomeController/UnpermitedAction表示用户不能使用的操作方法,当他们单击指向该方法的链接时,我们执行以下操作

$.address.value('/SomeController/UnpermittedAction')
然后,该操作返回未经授权的响应,我们向用户显示不允许他们使用该功能。但是,可以理解,用户的浏览器窗口现在显示:

somedomain.com/#/SomeController/UnpermittedAction
这本身并不是一个真正的问题,问题在于,如果用户转到其他页面,然后单击“后退浏览器”按钮,他们会再次看到未经授权的消息,这似乎有点令人困惑,因为他们不确定为什么会看到该消息。理想情况下,如果他们单击“上一步”按钮,我们希望将用户返回到他们授权使用的最后一页

我的问题是,有没有办法从浏览器历史记录和/或jQuery地址历史记录中删除未经许可的操作url

在javascript中尝试

        $.address.history(false);
        $.address.value(newurl);
        $.address.history(true);
这将用新的url替换上一个历史记录条目