簡體   English   中英

asp.net c#用戶登錄訪問和授權以及菜單

[英]asp.net c# user login access and authorization and menu

我正在開發Web應用程序,並且我有3種類型的用戶。 眾所周知,不同的用戶具有不同的訪問權限。 假設有三個用戶A,B,C。

共有5個菜單,例如menu1,menu2.menu3,menu4,menu5。

我必須設置訪問權限,例如

用戶A可以訪問menu1,menu2.menu3,menu4,menu5。

用戶B可以訪問menu2.menu3。

用戶C可以訪問menu3,menu4,menu5。

在此,我可以再添加一個具有不同訪問權限的用戶。

我的問題是我如何設計數據庫以及應采用什么邏輯來獲得此結果。

我有一個解決方案,但我正在通過數據庫進行嘗試。 該解決方案是為不同用戶保留不同的母版頁,但這不是一個好的解決方案。

通過登錄標識用戶訪問級別。 母版頁中的用戶級別具有不同的區域

引用此-

如何根據角色使masterPage內容可見? [類似的問題]

http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.loginview.rolegroups%28v=vs.110%29.aspx [良好指南]

-快樂編碼-

有很多方法可以做到這一點。 這是您可以做什么的示例:

  • 將所有菜單放在一個母版頁中
  • 在Session_Start上,從數據庫獲取他的訪問級別並將其存儲在會話變量中
  • 在主頁Page_Load上,您可以根據訪問級別顯示和隱藏菜單

我假設您只有五個菜單。 你可以做這樣的事情。

據我所知,首先需要將信息插入數據庫中以進行訪問控制。 因此,您可以執行類似的操作以將值插入數據庫以進行訪問控制。

User        Menu-1        Menu-2      Menu-3     Menu-4    Menu-5

A             1             1           1          1         1

B             0             1           1          0         0                 

C             0             0           1          1         1

您可以使用Repeater或Grdiview來顯示上面的UI。

0和1 只是復選框

0- Means checkbox is not checked & user cannot access that menu
1- Means checkbox is checked & user can access that menu

表結構

Create Table User_Details
(
  UserId int identity(1,1)
  UserName varchar(100),
  menu1 bit,
  menu2 bit,
  menu3 bit,
  menu4 bit,
  menu5 bit
)

這與將有關數據庫的信息插入數據庫有關。

Now for Access Control you can Do :

我假設您已將User control用於菜單。

如果您的用戶已登錄,那么您將擁有該用戶的ID ,並且在菜單的所有頁面(用戶控制)中,需要檢查用戶是否有權訪問該特定菜單

IF YES :那么您可以使該菜單的面板對該用戶可見

IF NO :那么您必須在菜單面板中對該用戶不可見

面向對象的方法和數據處理效率。
創建2個表: t_Userst_Types
t_Type具有類似(ID,role)的,角色將是您的訪問類型,(例如admin,普通用戶)
t_Users具有(ID,Name,TypeID)之類的列其中TypeID是外鍵,供您分配用戶所屬的用戶類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM