新聞中心
由微軟推出的一款面向?qū)ο蟮拈_發(fā)語言VB.NET在開發(fā)領(lǐng)域中占據(jù)著重要的作用。其中有很多內(nèi)容值得我們?nèi)ド钊胙芯?。VB.NET權(quán)限控制是一個值得深入討論的問題,我采用的方式是用FORM認(rèn)證的方法,具體的用戶信息,權(quán)限是放在數(shù)據(jù)庫中,并沒有集成WINDOWS的域認(rèn)證,實現(xiàn)的時候用專門的層來執(zhí)行權(quán)限判斷,利用GeneralPrincipal 和GeneralIdentity對象 。

成都創(chuàng)新互聯(lián)專注于大安市企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城建設(shè)。大安市網(wǎng)站建設(shè)公司,為大安市等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
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ā)性等。
【編輯推薦】
- VB.NET異常處理突破局限性
- VB.NET事務(wù)處理手工實行方式
- VB.NET業(yè)務(wù)層實現(xiàn)業(yè)務(wù)與邏輯
- VB.NET數(shù)據(jù)實體層實現(xiàn)方案介紹
- VB.NET MDI子窗體實例化問題解決方案
文章標(biāo)題:深入討論VB.NET權(quán)限控制
文章出自:http://fisionsoft.com.cn/article/djsepoh.html


咨詢
建站咨詢
