【问题标题】:how to enable and disable button based on user role?如何根据用户角色启用和禁用按钮?
【发布时间】:2011-08-24 22:21:25
【问题描述】:

我在 Asp.Net 网站中有一个名为“会员”的角色和另一个“管理员”。

我以前做过,该按钮应该可见或不可见,并且我成功了,但是,我无法获得正确的代码(aspx.cs)来禁用该按钮,以便它可以在视图中但不是完全可以访问。

<asp:Button ID="Button4" runat="server" PostBackUrl="~/report.aspx" 
   Text="print in report format" Width="173px" 
   Enabled='<%# HttpContext.Current.User.IsInRole("Admin") %>' /> 

我希望每当会员登录时,应为他禁用“报告”按钮。

【问题讨论】:

  • 为什么我不能回答这个问题,我有问题或问题:/

标签: asp.net button roles


【解决方案1】:

要么我遗漏了什么,要么解决方案很简单:

button.Enabled = false;

【讨论】:

  • 按钮应该启用给管理员而不是成员。如何做到这一点?
【解决方案2】:

我假设您使用的是 ASP.NET 按钮控件 - 如果是,则需要将 VisibleEnabled 按钮属性设置为 false

【讨论】:

  • 按钮应该启用给管理员而不是成员。如何做到这一点?
【解决方案3】:

在检查角色后的 Page_Load 中,您可以将按钮的 IsEnabled 设置为 False。

例如buttonLogin.Enabled = (IsUserInRole(Admin));

【讨论】:

    【解决方案4】:
    if (HttpContext.Current.User.IsInRole("member"))
    {
      //enable/disable here
    }
    

    【讨论】:

    • +1:这确实应该在后面的代码中完成。它可以在 html 端完成,但这样做真的没有意义。它的可读性/可维护性更差 IMO。
    【解决方案5】:

    你必须根据HttpContext.Current.User.IsInRole("admin")函数返回值设置Button.Enabled属性值。

    在 html 中:

    <Button ... Enabled='<%# HttpContext.Current.User.IsInRole("Admin") %>' ... >
    

    或者在后面的代码中:

    Button.Enabled = HttpContext.Current.User.IsInRole("Admin");
    

    【讨论】:

    • 谢谢它已经完成了。我无法解释这个网站在多大程度上增强了我的信心。再次感谢
    【解决方案6】:

    这里的主要问题是井号:&lt;%# 用于标识绑定。除非您在 gridview 或 formview 中调用它,否则这是行不通的。我建议按照@Muhammad Akhtar 的建议将其设置在后面的代码中,但如果您在使用 html 端时非常喜欢皮革,它可能应该是:

    Enabled='<%= HttpContext.Current.User.IsInRole("Admin").ToString() %>'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-22
      • 2018-06-28
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 2019-02-27
      相关资源
      最近更新 更多