0

我正在开发一个跟踪假期的工具的项目,并且该应用程序的某些部分(报告管理),“用户”角色不应该看到。到目前为止,这没有问题,但不知何故,“用户”不应该看到的部分的表示看起来很糟糕:

在此处输入图像描述

应该在页面上看到某些内容的权限在 Web.sitemap 中进行控制

 <siteMapNode title="Vacation" roles="Administrator,Location Business Leader,Business Leader,Department Leader" description="All employees with vacation" url="~/EmployeeView/UserVacationGrid.aspx" />

如果有人遇到同样的问题,您能否给我一些好的提示或解决方案如何解决这个问题,我将不胜感激!

4

1 回答 1

3

问题是您隐藏的任何内容(客户端或服务器端)都没有封装所有关联的控件。例如,如果您使用的是 ASP.NET 菜单,那么您可以使用以下代码隐藏菜单选项服务器端:

switch (UserRole) {
    case "Administrator":
        Menu1.Items.Item(0).Enabled = false;
        break;
}

这些控件将确保使用该选项折叠所有关联的 HTML。但是,如果您使用自己的控件或隐藏客户端的内容,则需要确保隐藏<div>包含控件的整个容器(即)。一个很好的方法是使用 jQuery:

$("#divVacationControl").hide();

确定 IE8 中哪些控件未被隐藏并留下不受欢迎的外观的最佳选择是使用 IE 开发人员工具栏。您可以通过 F12 按钮或工具 -> 开发人员工具访问它也可以从这里下载:http: //www.microsoft.com/en-us/download/details.aspx?id=18359

打开后,使用“单击选择元素”功能检查非隐藏元素并检查 DOM。然后,您可以找到未隐藏的罪魁祸首并检查您的逻辑。

如果它只发生在某个浏览器中,最后一种方法是设置其兼容模式。并不是说这是最好的方法,但它是一种选择。您可以在下面我的博客文章中阅读如何做到这一点;只需使用 IE7 或任何对你有用的东西。我不会推荐这种方法作为长期解决方案,除非这是一个您可以完全控制环境的公司 Intranet 应用程序。

使用 IE8 为 ASP.NET Intranet 站点指定文档兼容模式

于 2013-01-31T16:20:16.747 回答