我不确定我是否在ASP.NET应用程序中正确管理用户角色。这种方法是正确的,还是不正确的还是可以改进的?
所有用户都被添加到数据库中的users表中,其中包含以下字段:(userid,name,surname,isAdmin)
在我的应用程序中,我使用
获取用户IDRequest.Servervariables.Get("LOGON_USER")
在渲染页面时,我运行SQL查询以检查该页面上的当前用户是否在我的SQL Server中具有“isAdmin”参数=“true”。然后,如果是,我渲染并使适当的控件可见。 (例如,管理员页面的链接按钮)
答案 0 :(得分:1)
这不是一种正确的方法。您应该使用可以轻松与成员资格提供程序集成的asp.net roleprovider。它可以轻松减少页面控件/访问权限,角色提供程序非常可扩展和可扩展。你的方法非常严格,如果应用程序增长可能会遇到问题。
答案 1 :(得分:1)
ASP.Net角色提供程序(如果您不喜欢,可以自己动手做基本相同的事情,但符合您的要求)对此非常有用。你可以说(在这里解释),而不是在每个页面的顶部放置一个SQL查询(如果事情必须改变,那将是一场噩梦),
if (RoleProvider.IsUserInRole(Request.Servervariables.Get("LOGON_USER"), "Admin") == true)
{
//populate page as admin
}
else
{
//populate page as not admin
}