【问题标题】:How to assign user roles and hide buttons from users who are not in a role, asp.net如何分配用户角色并隐藏不在角色中的用户的按钮,asp.net
【发布时间】:2011-12-29 12:06:24
【问题描述】:

我知道有很多关于角色和授权的文章,但我需要一些不同的东西,但到目前为止我找不到任何东西.. 我正在开发一个内置 ASP.NET、C# 和连接的 MySQL 数据库的 Web 应用程序。

所以我需要的只是某处的简单检查(web.conf 或 Default.aspx.cs,我不知道)

if user "admin" (i.e inRole="admins") -> give permissions to everything
if user normalUser1 (i.e inRole = "users) -> HIDE 2 buttons 

所以他们无法点击它们。

例子: 管理员可以点击按钮上传和删除访问后面的数据库 用户不能点击上传或删除,可能是自己隐藏了按钮

如果你有任何想法。

【问题讨论】:

    标签: c# asp.net authentication roles


    【解决方案1】:

    最简单的想法是放置2个管理员按钮来分隔Panel并将其隐藏在服务器端:

    adminFunctionalityPanel.Visible = User.IsInRole("Admins");
    

    或者只是隐藏按钮本身:

    btnDelete.Visible = btnUpload.Visible = User.IsInRole("Admins");
    

    http://www.asp.net/security/tutorials/role-based-authorization-cs

    【讨论】:

    • 第二个选项对我来说要容易得多...如果就这么简单-我祝福你:) 我应该在 aspx.cs 页面中添加它吗?
    【解决方案2】:

    asp.net 中有一个内置控件支持此功能。

    查看<asp:LoginView> 控件。这允许您显示/隐藏某些控件,具体取决于用户是否经过身份验证,也取决于您指定的角色。

    看看下面的这些链接。他们描述了如何使用它。

    http://msdn.microsoft.com/en-us/library/ms178329.aspx#the_loginview_control

    http://weblogs.asp.net/sukumarraju/archive/2010/07/28/role-based-authorization-using-loginview-control.aspx

    在为用户分配角色时,您可以使用 Visual Studio 中内置的 ASP.NET 配置工具,也可以创建自己的代码/UI 来管理它。

    【讨论】:

    • 太棒了..第二个正是我想要的。谢谢老兄:)
    • 嘿,蒂姆,还有一个问题。它工作得很好,但里面只有一个按钮。当我尝试在 LoginView 中添加 FileUpload 控件和上传按钮本身时,它没有找到 FileUpload 的名称。它非常奇怪我应该考虑为这些按钮再使用一个 LoginView 吗?
    • 这确实需要另一个问题。如果您将其放在一个新问题中,那么我可以回答,因为这对于使用代码示例和您现有的代码/标记进行完整解释会很有帮助。
    • 好的,当然。我是否只是通过开始一个新问题来做到这一点?
    • 是的。刚开始一个新问题并在此处发布链接,以便我可以快速访问它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2020-10-16
    • 2015-08-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2023-02-14
    相关资源
    最近更新 更多