我们正在使用我们的 ASP.NET MVC ajax 应用程序中的 jQuery 地址插件来处理深层连接和历史保存。 无论何时您想要浏览到新页面, 您只需拨打以下电话 :
$.address.value([some url])
我们的应用程序有一个非常详细的用户管理系统, 使得我们的用户能够定义哪些用户可以访问应用程序中的哪些功能。 我们为每种操作方法安装了定制的授权属性, 以决定用户是否允许使用该操作方法提供的功能。 授权非常有效, 但问题是, 如果用户没有权限使用特定操作方法, 浏览器 URL 仍然能反映它们是否在链接页面上, 他们点击了 。
例如,如果URl/某些主计长/未授权行动代表用户在点击与该方法的链接时不应使用的行动方法,我们执行下列操作方法:
$.address.value( /SomeController/UnpermittedAction )
然后,该动作返回未经授权的反应,我们向用户显示不允许他们使用该功能。但可以理解,用户浏览器窗口现在显示的是:
somedomain.com/#/SomeController/UnpermittedAction
问题在于,如果用户去其他页面点击后台浏览器按钮,他们就会再次看到未经授权的信息,而且似乎有些混乱,因为他们不确定为什么看到该信息。 理想的情况是,如果他们点击后台按钮,我们就会想将用户返回到他们授权使用的最后一页。
我的问题是,有没有办法从浏览器历史和(或) JQuery 地址历史中删除未经允许的行动 URL?