0

我不太确定我是否在ASP.NET应用程序中适当地管理用户角色。这样的方法是正确的,还是不正确的,还是可以改进的?ASP.NET Web应用程序中基于Windows身份验证的角色管理

所有用户被添加到数据库中,其中有例如域用户表(用户ID,姓名,isAdmin)

在我的申请,我得到使用

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

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

回答

1

这不是一个正确的方法。你应该使用可以很容易地与成员资格提供者集成的asp.net角色提供者。它可以很容易地减少页面控制/访问,角色提供程序是非常可扩展和可扩展的。你的方法非常严格,如果应用程序增长,可能会遇到问题。

1

ASP.Net角色提供者(如果你不喜欢,你可以推出自己的基本相同的东西,但符合你的要求)对此非常有用。而不是在每个页面的顶部放置一个SQL查询(这将是一个噩梦,如果事情不得不改变),你可以说(在这里解释)

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