由微软推出的一款面向对象的开发语言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文件,这样的效率高于从数据库获得。
当然在实际开发中还会碰到很多其他问题,如报表,打印,并发性等。
【编辑推荐】