【问题标题】:Windows authentication based role management in ASP.NET Web ApplicationASP.NET Web 应用程序中基于 Windows 身份验证的角色管理
【发布时间】:2012-06-29 15:10:35
【问题描述】:

我不太确定我是否在 ASP.NET 应用程序中适当地管理用户角色。这样的做法是正确的,还是不正确的,还是可以改进的?

所有用户都添加到数据库中的用户表中,其中有字段例如:(userid, name, surname, isAdmin)

在我的应用程序中,我使用

获取用户 ID
Request.Servervariables.Get("LOGON_USER")

在呈现页面时,我运行 SQL 查询来检查该页面上的当前用户是否在我的 SQL Server 中具有“isAdmin”参数 =“true”。然后,如果是,我会渲染并使适当的控件可见。 (例如,指向管理员页面的链接按钮)

【问题讨论】:

    标签: asp.net sql-server security windows-authentication user-roles


    【解决方案1】:

    ASP.Net 角色提供程序(如果您不喜欢,您可以自己动手做基本相同的事情,但符合您的要求)对此非常有用。与其在每个页面的顶部放置一个 SQL 查询(如果必须更改某些内容,这将是一场噩梦),您可以说(在这里转述)

    if (RoleProvider.IsUserInRole(Request.Servervariables.Get("LOGON_USER"), "Admin") == true)
    {
       //populate page as admin
    }
    else
    {
       //populate page as not admin
    }
    

    【讨论】:

      【解决方案2】:

      这不是正确的做法。您应该使用可以轻松与会员提供程序集成的 asp.net roleprovider。它使精简页面控件/访问变得容易,并且角色提供程序非常可扩展和可扩展。您的方法非常严格,如果应用程序增长可能会遇到问题。

      【讨论】:

        猜你喜欢
        • 2020-03-04
        • 1970-01-01
        • 2017-08-31
        • 2016-03-07
        • 2018-09-06
        • 2014-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多