如何根据当前用户的角色显示或隐藏 aspx 页面的内容

2024-04-04

我有一个 ASP.NET 站点,其中每个页面都有一些内容,每个登录用户都有一些特定的角色。我想根据登录用户的角色隐藏和显示页面内容。我怎样才能做到这一点?

P.S.:我了解 ASP.NET 中整个表单的身份验证和授权;我的问题是关于页面的内容。

我是否必须有一些 .ascx (用户控件),然后将它们添加到 .aspx 页面,然后根据可见性属性和用户角色隐藏和显示 aspx 页面的部分内容?或者是通过其他方式完成的?


我不想设置可见性属性,因为它使我的代码变脏并且不方便。假设我有一个 Default.aspx 页面,并且有 3 个角色:

  • Admin
  • A
  • B

在 Default.aspx 页面中,我想根据用户角色显示内容,因此我使用 Loginview 及其模板,如下所示:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
    
    <asp:LoginView runat="server" ID="loginviewControl1">
       <AnonymousTemplate>
            <asp:HyperLink runat="server" ID="lnkLogin" Text="Log In" NavigateUrl="~/Account/Login.aspx"></asp:HyperLink>
       <Anonymous:AnonymousPart ID = "anonym" runat="server" />
       </AnonymousTemplate>
       <LoggedInTemplate>
            <asp:Label runat="server" ID="WelcomeBackMessage"></asp:Label>
        </LoggedInTemplate>
       <RoleGroups>
           <asp:RoleGroup Roles="Admin">
               <ContentTemplate>
                   <Admin:AdminPart ID ="adminContent" runat="server" />
               </ContentTemplate>
           </asp:RoleGroup>
           <asp:RoleGroup Roles="A">
               <ContentTemplate>
                  <RoleA:RoleAPart ID = "RoleAContent" runat="server"/>
               </ContentTemplate>
           </asp:RoleGroup>
           <asp:RoleGroup Roles="B">
               <ContentTemplate>
                 <RoleB:RoleBPart ID = "RoleBContent" runat="server" />
               </ContentTemplate>
           </asp:RoleGroup>
        </RoleGroups>
    </asp:LoginView>
</asp:Content>

RoleB:RoleBPart, RoleA:RoleAPart, and Admin:AdminPart是用户控件。

这是我的CS文件代码:

protected void Page_Load(object sender, EventArgs e)
    {
        
    }

我认为这比设置可见性更好,因为有时很难处理它。当角色A的用户登录时,显示的内容只有RoleA:RoleAPart部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据当前用户的角色显示或隐藏 aspx 页面的内容 的相关文章

随机推荐

  • 通过 Modal Bootstrap 传递数据并获取 php 变量?

    我试图获取通过 jquery 传递的输入值并将其设置为 php 变量 但我不知道该怎么做 该按钮具有我要发送的值
  • 绑定 ComboBox ItemsSource 在 WPF 中不起作用

    这有点奇怪 因为我在那里找到的每个示例都说我正在以正确的方式做事 但我无法让我的 ComboBox 绑定在 WPF 中工作 我刚刚创建了一个空的 WPF 应用程序 public List
  • jQuery 中的 $this 与 $(this)

    我看过一些关于SO的讨论 this vs this在 jQuery 中 它们对我来说很有意义 看在这里讨论 https stackoverflow com questions 1051782 jquery this vs this举个例子
  • 彩色 xtrace 输出

    我有一个 sh 脚本 它使用set o xtrace打印以下所有命令 我想为这些命令着色 我尝试像这样使用 PS4 变量 export PS4 e 36m e m 但这只是颜色 角色 如果我省略 e m 我的完整输出和执行程序的输出是彩色的
  • 类型“JQuery”上不存在属性“slick”

    我有一个想要使用的 Angular 6 项目光滑的滑块 http kenwheeler github io slick 和 首先我安装了 jQuery npm 我jquery 然后是光滑的旋转木马 npm 我光滑的轮播 然后我对 angul
  • 插入带有 firefox 扩展名的本地 css 文件

    我正在构建一个 Firefox 扩展 需要在文档中插入一些元素和 css 我尝试以下Firefox 扩展如何将本地 css 文件注入网页 https stackoverflow com questions 2731736 how can a
  • 以编程方式将EnvironmentProperty设置为ChromeDriver

    我正在无头中使用 SE2 和 firefoxDriver 运行测试 环境 Xvfb 使用 FirefoxDriver 我可以非常设置 DISPLAY 环境属性 容易地 FirefoxBinary firefox new FirefoxBin
  • 如何从可视化中删除 D3 链接文本

    当单击力定向可视化中的节点时 任何子节点 及其关联的链接 都会打开 关闭 但是 当删除其关联的子节点和链接时 充当这些链接标签的文本不会被删除 见下文 这是代码的相关部分 最后一行 linkText exit remove 是我删除这些标签
  • Gradle 构建 null 控制台对象

    我正在尝试使用堆栈溢出中的示例让我的 gradle 构建在控制台提示输入密码 当我有这样的陈述时 def password System console readLine Enter keystore password 当我运行时出现错误
  • 如何在 Blackberry Storm 中设置抗锯齿?

    我正在绘制位图 例如 bitmap i new Bitmap 60 60 Graphics g new Graphics bitmap i g setColor Color BLACK g drawLine 现在如何在 g drawLine
  • 使用无符号索引执行反向“for”循环的最佳方法是什么?

    我的第一次尝试反向for循环做某事 n 次是这样的 for unsigned int i n 1 i gt 0 i This fails因为在无符号算术 i保证始终大于或等于零 因此循环条件始终为真 幸运的是 在我不得不想知道为什么循环无限
  • 如何在php中将数组存储到会话变量中

    从问题表中返回10个问题 result mysqli query con SELECT question FROM questions ORDER BY rand LIMIT 10 while row mysqli fetch row re
  • Python - 描述符“split”需要“str”对象,但收到“unicode”

    呃 我有现成的代码 并且我确信它确实有效 但我收到以下错误 类型错误 描述符 split 需要 str 对象 但收到了 统一码 这就是整个定义 def assemblePacket self type ipSplit str split s
  • 将图像加载到文件流

    我正在使用加载图像 OpenFileDialog open new OpenFileDialog 选择文件后 打开 会填充多个项目 包括路径 现在我想将文件加载到文件流 或类似的东西 中以通过网络服务发送 这可能吗 thanks 您可以使用
  • 如何在不使用继承的情况下向控制器添加常见操作?

    我需要在不使用继承的情况下向多个控制器添加常见操作 我们所有的控制器都扩展了抽象控制器 而我想要包含的功能在抽象控制器中没有意义 我最初的想法是使用 Mixin 但看起来动作 因为它们是闭包 并没有 混合 到包含 mixin 的控制器中 只
  • C++ 如何断言向量中的所有 std::shared_ptr 都引用某些东西

    当我有一个函数接收一个应该引用某些东西的 智能 指针时 我总是按如下方式开始 class Foo void doSomething const std shared ptr
  • Python 如何获取某一特定点的导数值?

    from sympy import x Symbol x y x 2 dx diff y x 这段代码可以得到y的导数 这很容易dx 2 x 现在我想得到的值dx for x 2 清楚地 dx 2 2 4 when x 2 但是我如何用Py
  • 使用 gdi+ 将 png 转换为 gif (C#)

    我有一个 png 文件 必须将其转换为 gif 文件 里面有一个透明的部分 当我保存它时 透明的部分是黑色的而不是透明的 这是我的代码 FileStream imgStream new FileStream outputFile FileM
  • 关于Python中的关闭文件

    我知道如果在 Python 中不再使用的话 使用 close 来关闭文件是一个好习惯 我尝试打开大量打开的文件 并且不关闭它们 在同一个Python进程中 但没有看到任何异常或错误 Mac 和 Linux 我都试过了 那么 只是想知道Pyt
  • 如何根据当前用户的角色显示或隐藏 aspx 页面的内容

    我有一个 ASP NET 站点 其中每个页面都有一些内容 每个登录用户都有一些特定的角色 我想根据登录用户的角色隐藏和显示页面内容 我怎样才能做到这一点 P S 我了解 ASP NET 中整个表单的身份验证和授权 我的问题是关于页面的内容