深入討論VB.NET權限控制
由微軟推出的一款面向對象的開發語言VB.NET在開發領域中占據著重要的作用。其中有很多內容值得我們去深入研究。VB.NET權限控制是一個值得深入討論的問題,我采用的方式是用FORM認證的方法,具體的用戶信息,權限是放在數據庫中,并沒有集成WINDOWS的域認證,實現的時候用專門的層來執行權限判斷,利用GeneralPrincipal 和GeneralIdentity對象 。
VB.NET權限控制代碼片段如下:
- Public Function CheckRole
(ByVal strRole As String)
As Boolean- Return privateUserPrincipal.
IsInRole(strRole)- End Function
- Private Sub InitPrincipal()
- Try
- privateUserIdentity = New
GenericIdentity(privateUserName)- privateUserPrincipal = New
GenericPrincipal(privateUserI
dentity, privateUserRoles)- Catch e As Exception
- Throw New Exception("an error
occurred setting credentials")- End Try
- End Sub
- Private Sub SavePrincipal()
- Try
- If Not IsNothing(_context) Then
- context.Session("UserName") =
privateUserIdentity.Name- context.Session("Roles") =
privateUserRoles- context.User =
privateUserPrincipal- End If
- Catch e As Exception
- Throw e
- End Try
- End Sub
這樣一來當界面變成WINDOWS的FORM是就不需要改動很多代碼了,同時為了解決將權限放到SESSION中引起的延時問題,我將用戶的VB.NET權限控制信息放在服務端的XML文件中,然后直接中XML文件中獲得數據,任何對用戶信息的修改都將改變相應的XML文件,這樣的效率高于從數據庫獲得。
當然在實際開發中還會碰到很多其他問題,如報表,打印,并發性等。
【編輯推薦】