0

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

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

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

Request.Servervariables.Get("LOGON_USER")

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

4

2 回答 2

1

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

于 2012-06-28T06:15:07.893 回答
1

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

if (RoleProvider.IsUserInRole(Request.Servervariables.Get("LOGON_USER"), "Admin") == true)
{
   //populate page as admin
}
else
{
   //populate page as not admin
}
于 2012-06-28T06:35:57.103 回答