深入讨论VB.NET权限控制
创始人
2024-06-20 10:01:49
0

由微软推出的一款面向对象的开发语言VB.NET在开发领域中占据着重要的作用。其中有很多内容值得我们去深入研究。VB.NET权限控制是一个值得深入讨论的问题,我采用的方式是用FORM认证的方法,具体的用户信息,权限是放在数据库中,并没有集成WINDOWS的域认证,实现的时候用专门的层来执行权限判断,利用GeneralPrincipal 和GeneralIdentity对象 。

VB.NET权限控制代码片段如下:

  1. Public Function CheckRole
    (ByVal strRole As String) 
    As Boolean  
  2. Return privateUserPrincipal.
    IsInRole(strRole)  
  3. End Function  
  4. Private Sub InitPrincipal()  
  5. Try  
  6. privateUserIdentity = New 
    GenericIdentity(privateUserName)  
  7. privateUserPrincipal = New 
    GenericPrincipal(privateUserI
    dentity, privateUserRoles)  
  8. Catch e As Exception  
  9. Throw New Exception("an error 
    occurred setting credentials")  
  10. End Try  
  11. End Sub  
  12. Private Sub SavePrincipal()  
  13. Try  
  14. If Not IsNothing(_context) Then  
  15. context.Session("UserName") = 
    privateUserIdentity.Name  
  16. context.Session("Roles") = 
    privateUserRoles  
  17. context.User = 
    privateUserPrincipal 
  18. End If  
  19. Catch e As Exception  
  20. Throw e  
  21. End Try  
  22. End Sub 

这样一来当界面变成WINDOWS的FORM是就不需要改动很多代码了,同时为了解决将权限放到SESSION中引起的延时问题,我将用户的VB.NET权限控制信息放在服务端的XML文件中,然后直接中XML文件中获得数据,任何对用户信息的修改都将改变相应的XML文件,这样的效率高于从数据库获得。

当然在实际开发中还会碰到很多其他问题,如报表,打印,并发性等。

【编辑推荐】

  1. VB.NET异常处理突破局限性
  2. VB.NET事务处理手工实行方式
  3. VB.NET业务层实现业务与逻辑
  4. VB.NET数据实体层实现方案介绍
  5. VB.NET MDI子窗体实例化问题解决方案

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...