深入討論VB.NET權(quán)限控制
由微軟推出的一款面向?qū)ο蟮拈_發(fā)語言VB.NET在開發(fā)領(lǐng)域中占據(jù)著重要的作用。其中有很多內(nèi)容值得我們?nèi)ド钊胙芯俊B.NET權(quán)限控制是一個值得深入討論的問題,我采用的方式是用FORM認(rèn)證的方法,具體的用戶信息,權(quán)限是放在數(shù)據(jù)庫中,并沒有集成WINDOWS的域認(rèn)證,實現(xiàn)的時候用專門的層來執(zhí)行權(quán)限判斷,利用GeneralPrincipal 和GeneralIdentity對象 。
VB.NET權(quán)限控制代碼片段如下:
- 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
這樣一來當(dāng)界面變成WINDOWS的FORM是就不需要改動很多代碼了,同時為了解決將權(quán)限放到SESSION中引起的延時問題,我將用戶的VB.NET權(quán)限控制信息放在服務(wù)端的XML文件中,然后直接中XML文件中獲得數(shù)據(jù),任何對用戶信息的修改都將改變相應(yīng)的XML文件,這樣的效率高于從數(shù)據(jù)庫獲得。
當(dāng)然在實際開發(fā)中還會碰到很多其他問題,如報表,打印,并發(fā)性等。
【編輯推薦】

















