EnterPrise 中的SAB(既安全应用程序块)是一个非常有用、高效的模块;并且可以对用户、角色以及权限等进行非常灵活的管理,在业务流程以及角色、用户变化时候,基本不必重新修改原来的编码逻辑,重新设计业务流程,重新编写源代码,而只需要在数据库或者配置文件中进行几种组合就可以达到效果。
        本文主要对SAB的认证环节进行一些说明。
        首先在进入SAB认证处理之前,还是有很多工作要做的,比如对config文件进行配置,写存储过程等,对config进行配置的环节,请参考:TerryLee写的[安全应用程序块——入门篇
        http://www.cnblogs.com/Terrylee/archive/2005/10/25/261414.html 
        下面是要用到的存储过程:
         其中要注意的是:在建立用户表的时候,password字段一定要用二进制varbinary,因为该字段要涉及到加密。该过程中只简单涉及到一个用户表,例子中的表为userOk,字段有U_ID,UserName,UserPWS三个字段。

    --InsertUser用于添加用户,与密码

EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)CREATE PROCEDURE dbo.InsertUser
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
@name nvarchar(256),
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
@password varbinary(64),
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
@userExists tinyint out
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
AS
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
IF EXISTS (SELECT UserName FROM userok WHERE UserName = @name)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
BEGIN
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
SELECT @userExists = 1
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
RETURN
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
END
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
SELECT @userExists = 0
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
SELECT @password = IsNull(@password0x691B0FBEED8F399F7E12576B090B217E4AD88A09)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
INSERT INTO Userok
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    (UserName, userpws)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
VALUES
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    (
@name@password)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
RETURN
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
GO
  --=================================================
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)--GetPassword通过用户名读取密码

EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
CREATE PROCEDURE GetPassword
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
@name nvarchar(256)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
AS
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
SET NOCOUNT ON
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
SELECT    
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)        userpws
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
FROM Userok
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
WHERE UserName = @name
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
SET NOCOUNT OFF
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
RETURN
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
GO
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)--=================================================
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)--GetUserIdByName验证用户是否存在
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
CREATE PROCEDURE dbo.GetUserIdByName
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
@name nvarchar(256),
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
@userId int OUT
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
AS
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
SELECT @userId = U_ID
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
FROM Userok
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)    
WHERE UserName = @name
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
RETURN
EnterPrise应用(3)  Security Application Block应用程序块 认证处理(VB.NET)
GO

        有了表,有了存储过程,有对SAB做好了配置工作,下面就可以进入代码阶段了,当然做代码前要把相关的类引入进来,并做声明。
        建立用户账户:
End Sub
        建立了用户数据后,我们就可以进行登陆了,看下面的代码:

End Function

        到此,就利用EnterPrise SAB模块中的认证部分进行登陆判断,其中用户的删除操作也很简单用UserRoleManager中的DeleteUser方法就可以了。

相关文章:

  • 2022-12-23
  • 2021-10-16
  • 2022-02-05
  • 2021-12-04
  • 2021-07-09
  • 2021-05-22
猜你喜欢
  • 2021-11-18
  • 2022-02-25
  • 2021-12-08
  • 2021-05-16
  • 2021-07-09
  • 2021-05-27
相关资源
相似解决方案