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 
} 
相關問題