U8开发之登录组件.docx

上传人:b****7 文档编号:26111589 上传时间:2023-06-17 格式:DOCX 页数:30 大小:177.49KB
下载 相关 举报
U8开发之登录组件.docx_第1页
第1页 / 共30页
U8开发之登录组件.docx_第2页
第2页 / 共30页
U8开发之登录组件.docx_第3页
第3页 / 共30页
U8开发之登录组件.docx_第4页
第4页 / 共30页
U8开发之登录组件.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

U8开发之登录组件.docx

《U8开发之登录组件.docx》由会员分享,可在线阅读,更多相关《U8开发之登录组件.docx(30页珍藏版)》请在冰豆网上搜索。

U8开发之登录组件.docx

U8开发之登录组件

U8登录组件

摘要

登录组件是U8应用程序的入口,负责登录操作并获得相关登录信息、令牌等。

什么是登录组件?

登录U8应用程序的组件。

目标

本文主要介绍登录组件的基础知识,应用过程及相关注意事项,方便各类U8产品开发人员更好的使用登录组件,更高效的开发产品。

登录组件可以做什么?

主要功能:

∙与加密服务器通讯,负责管理连接站点数是否超过加密狗中的站点数。

∙加密控制在登录组件中实现,通过一次完整的登录过程,判断用户许可数。

如果没有购买加密狗,产品允许使用两个月或者60天,如果购买了加密狗,超过许可数的用户,仍然只能使用演示版;所有产品,超过演示期,一律禁止使用。

∙目前支持两种许可方式:

单个模块的许可和包的许可

1.按单个模块的许可

每个模块独立计算许可,一个客户端使用多个不同的模块,则统计占用了多个许可.

2.按包的许可

以包统计许可,没有模块的概念,整个包近似与一个大的模块,计算许可的时候,按照客户端来统计,一个客户端可以使用多个模块(如果这些模块在同一个包中),只算一个许可.

∙建立与应用服务器的连接

∙登录成功后返回登录令牌,用此令牌可以获得登录信息(账套、年度、用户等)。

 

使用环境:

支持产品狗和软加密证书

支持环境为U811.0版本;

开发环境要求必须在Microsoft.NET的Framework3.5版本下进行

如何使用登录组件?

组件:

UFSoft.U8.Framework.Login.UI

在VB中引用登录组件

1.在VB中点击主菜单中的“工程->引用”,随后出现的“引用”对话框中选中“UFSoft_U8_Framework_Login_UI”,然后点击“确定”,如下图所示:

dll文件的方法函数图例如下

登录组件提供的主要方法:

●公共方法 

login方法

对外提供的登录接口,支持不要登录界面的登录认证(如果参数都输全了)

SubLogin方法

主要完成门户的登录后对子系统登录的校验工作

SubLogout方法

子系统注销

GetLoginInfo方法

客户端返回登录需要的连接串信息等

GetTaskID方法

返回指定子系统的TaskID

GetDataSource方法

得到服务端配置的数据源

ShutDown方法

注销登录过程

GetDefaultConnstring方法

得到服务端配置的数据源

IsDemoToSubSystem方法

得到子系统是否是演示版

getAppConnstring方法

得到具体应用的连接信息

GetPwdSecurityLevel

得到给定密码的安全级别

GetLastErrorResID

返回最后一个出错的错误ID和带参的资源变量

EnPassWord

提供密码单项加密函数

GetFileServerInfo

登录成功,返回服务器端配置的文件服务器信息

GetSubLoginInfo

返回子产品的登陆信息集合

ModifyUserPassword

当登录成功后,修改用户密码

●公共属性

ErrDescript

返回错误信息 

IsCompanyVer

返回标志,判断是否集团账套

WorkStationName

设置IE的站点名或IP地址(目的记录使用Web应用程序登录的当前工作站)

userToken

返回登录令牌

dataSource

返回当前登录使用的数据源

Auditor

设置审核人的信息

●方法详细解释:

1.login方法

对外提供的登录接口,支持不要登录界面的登录认证(如果参数都输全了)

语法

Boollogin(stringpSubId,stringUserId,stringPwd,stringappServer,stringoperDate,stringdataSource,stringWorkStationSerial,boolChangePwd,stringNewPassword,boolKickOutWorkStation)

login方法的语法包含下列部分:

部分

描述

SubId

必需的。

子产品号

pSubId

必需的。

子产品号

dataSource

可选项,数据源

UserId

可选项,用户编号

Pwd

可选项,用户密码

appServer

可选项,应用

服务器名

operDate

可选项,注册日期

WorkStationSerial

可选项,硬件序列号(必须全球唯一)

ChangePwd

必需的.本次登陆是否修改密码

NewPassword

可选项。

如果ChangePwd=true,记录新密码

KickOutWorkStation

必需的。

本次登陆是否踢除其他客户端,=true,同名用户不允许在多个客户端登陆

返回值:

true成功

False失败

返 回

举例

PrivateSubmnu_login_Click(IndexAsInteger)

DimpSubIdAsString

DimpUserIdAsString

DimpPasswordAsString

DimcSrvAsString

DimpDateAsString

DimpAccIdAsString

DimcSerialAsString

pSubId="GL"

pUserId="demo"

pPassword=""

cSrv="echocloud"

pDate="2006-11-01"

pAccId="(default)@001"

cSerial=""

Ifologin.login(pSubId,pUserId,pPassword,cSrv,pDate,pAccId,cSerial,false,"",false)=FalseThen

MsgBoxm_NewLogin.ErrDescript

Else

MsgBox"loginok"

EndIf

EndSub

2.SubLogin方法

主要完成门户的登录后对子系统登录的校验工作,主要包括加密许可的控制,如果超过许可数,并且已经过三个月的演示期,则返回nothing.

语法

ProductContextSubLogin(stringSubId)

SubLogin方法的语法包含下列部分:

部分

描述

SubId

必需的。

子产品号

返回值:

产品在登录后在当前进程空间所保留的上下文

举例

PrivateSubmnu_sublogin_Click(IndexAsInteger)

'第二步:

子系统登录

SetoLoginContext=ologin.SubLogin("GL")

IfoLoginContextIsNothingThen

MsgBoxologin.ErrDescript

Else

MsgBox"subloginok."

EndIf

EndSub

返 回

3.SubLogout方法

子系统注销,释放登录时占用的许可,与SubLogin成对出现

语法

voidSubLogout(stringSubId)

SubLogout方法的语法包含下列部分:

部分

描述

SubId

必需的。

子产品号

举例

ologin.SubLogout("GL")

返 回

4.GetLoginInfo方法

客户端返回登录需要的连接串信息等

语法

UserDataGetLoginInfo()

UserData的语法包含下列部分:

部分

描述

UserData

publicclassUserData

{

publicstringUserId;//用户名

publicstringPassword;//密码

publicstringAccID;//帐套ID

publicstringiYear;//帐套年度

publicstringcSubID;//子系统号

publicstringAppServer;//应用服务器

publicstringuuid;//

publicstringDataSource;//数据源

publicstringConnString;//年度库的连接串

publicstringoperDate;//登陆界面的业务日期

publicstringWorkStationSerial;//工作站的唯一序列号

publicstringRightServer;//读取加密狗服务器

publicstringLanguageID;//语言

publicboolIsCompanyVer;//是否集团帐套=true,集团版

publicHashtableSecondConnString;

publicstringEmployeeId;//操作员对应的人员编码

publicboolIsAdmin;//当前操作员是否是账套主管

publicstringUserName;//操作员名称

publicstringAccName;//账套名称

publicintiMonth;//会计月

publicstringAppServerSerial;//应用服务器唯一序列号

publicstringRoles;//操作员隶属的角色组

public_AuditorContextAuditor;//审核人

publicstringBarCode;//加密狗的条码信息

publicstringCustomer;//加密狗中记录的用户信息,可以为空

publicintAuthenMode;//当前用户的身份认证方式,

//(STATICPASSWORD=0,DYNAMICPASSWORD=1,CACERT=2)

publicstringAuthenExtraInfo;//记录CA认证需要的额外信息

publicstringIndustryType;//行业类型

}

_AuditorContext

publicinterface_AuditorContext

{

stringAuditorId{get;set;}//编码

stringAuditorName{get;set;}//名称

}

返回值:

登录信息

5.GetTaskID方法

返回指定子系统的TaskID

语法

stringGetTaskID(stringSubID)

TaskExec方法的语法包含下列部分:

部分

描述

SubID

必需的。

子产品号

返回值:

子系统的TaskID

返 回

6.GetDataSource方法

得到服务端配置的数据源

语法

stringGetDataSource(stringAppServerName,stringUserId)

GetAccInfo方法的语法包含下列部分:

部分

描述

AppServerName

应用服务器的名称

UserId

Xml格式信息

返回值:

xml格式的数据源编码

返 回

7.ShutDown方法

在进行完成相应的登陆流程后,必须通过通过该方法来关闭该控件,否则会浪费系统资源,与login成对出现

语法

voidShutDown()

举例

cologin.ShutDown

返 回

8.GetDefaultConnstring方法

得到服务端配置的默认数据源

语法

stringGetDefaultConnstring(stringAppServerName);

部分

描述

AppServerName

应用服务器的名称

返回值:

默认数据源对应的连接串

返 回

9.IsDemoToSubSystem方法

得到子系统是否是演示版,如果是演示版,建议在界面上警告用户。

语法

boolIsDemoToSubSystem(stringUserToken,stringSubID)

IsDemoToSubSystem方法的语法包含下列部分:

部分

描述

UserToken

必需的。

登录令牌

SubID

必需的。

子产品号

返回值:

true演示版

Fasle正式版

返 回

10.getAppConnstring方法

得到具体应用的连接信息

语法

stringgetAppConnstring(stringUserToken,stringSubID);

ClosingStatus方法的语法包含下列部分:

部分

描述

UserToken

必需的。

登录令牌

SubID

必需的。

子产品号

返回值:

连接串

返 回

11.GetPwdSecurityLevel方法

得到给定密码的安全级别

语法

intGetPwdSecurityLevel(stringPwdValue);

GetPwdSecurityLevel方法的语法包含下列部分:

部分

描述

PwdValue

必需的。

指定密码

返回值:

安全级别

=0低;1中;2高;3优秀

返 回

12.GetLastErrorResID方法

返回最后一个出错的错误ID和带参的资源变量,如果没有错误,返回nothing,如果是系统错误,ResId为空串

语法

ResServiceHeadGetLastErrorResID();

GetLastErrorResID方法的语法包含下列部分:

部分

描述

返回值:

资源错误对象,包括:

ResId资源ID;

ResArg资源参数列表

常见的错误ID列表

部分

描述

U8.AA.LoginBO.DemoInvalidate

账套[{0}]年度[{1}]的演示期限已到期!

U8.AA.LoginBO.ErrorPassword

口令不正确!

返 回

13.EnPassWord方法

提供密码单项加密函数

语法

stringEnPassWord(stringPwdValue);

EnPassWord方法的语法包含下列部分:

部分

描述

PwdValue

必需的。

明文

返回值:

hash值

返 回

14.GetFileServerInfo方法

登录成功,返回服务器端配置的文件服务器信息

语法

stringGetFileServerInfo(stringUserToken,boolisWeb);

GetFileServerInfo方法的语法包含下列部分:

部分

描述

UserToken

必需的。

登录的合法令牌

PwdValue

必需的。

是否与登录对象在同一进程里,如果在,则为false,否则为true

返回值:

文件服务器详细信息,格式如下

返 回

14.GetSubLoginInfo方法

子产品登录成功后,返回子产品的登陆信息集合

语法

SubSystemDataHeadGetSubLoginInfo(stringSubId);

GetSubLoginInfo方法的语法包含下列部分:

部分

描述

SubId

必需的。

子产品号,如GL。

返回值:

子产品登录信息

返 回

15.ModifyUserPassword方法

修改用户密码,当登录成功后

语法

voidModifyUserPassword(stringNewPassword);

ModifyUserPassword方法的语法包含下列部分:

部分

描述

NewPassword

必需的。

新密码。

返回值:

返 回

属性详细解释

1.ErrDescript

返回错误信息,所有登录组件提供的方法,如果返回值是布尔型且为false,则通过这个属性可以查看详细信息

语法 

stringErrDescript{get;}

返 回

2.IsCompanyVer

返回标志,判断是否集团账套

语法 

boolIsCompanyVer{get;}

返 回

3.WorkStationName

设置IE的站点名或IP地址(目的记录使用Web应用程序登录的当前工作站)

语法 

stringWorkStationName{set;}

返 回

4.userToken

返回登录令牌

语法 

stringuserToken{get;}

返 回

5.dataSource

返回当前登录使用的数据源

语法 

stringdataSource{get;}

返 回

6.Auditor

设置审核人信息

语法 

_AuditorContextAuditor{set;}

_AuditorContext的语法包含下列部分:

_AuditorContext的语法包含下列部分

部分

描述

_AuditorContext

publicinterface_AuditorContext

{

stringAuditorId{get;set;}//编码

stringAuditorName{get;set;}//名称

}

返 回 

应用案例:

新增模块的步骤:

1.注册到数据库中

可以调用存储过程sp_LoadUASubsys_Base

举例:

新增模块:

'DM,中文名称:

宿舍管理,

EXECUTEsp_LoadUASubsys_Base'DM',N'宿舍管理','zh-CN',64

2.刷加密狗,统一由总部将新增产品写到加密狗中,并需通知平台的人处理

3.直接调用登录组件就可以满足加密控制

返 回

功能权限控制

功能权限控制提供了两个版本,VB版和Net版。

VB版主要给客户端使用,Net版主要给服务端使用。

主要根据互斥级别,进行功能的申请和释放,注意:

功能权限只处理末级权限。

组件:

U8Login(VB版本)

在VB中引用U8Login组件

在VB中点击主菜单中的“工程->引用”,随后出现的“引用”对话框中选中“U8login”,然后点击“确定”,如下图所示:

dll文件的方法函数图例如下

U8Login提供的主要方法:

1.TaskExec方法

系统功能的申请和释放。

根据参数的不同可以执行不同类型的功能申请

语法

object.TaskExec(ByValpAuth_idAsString,ByValbIsLockAsInteger,OptionalByValiYearAsInteger)AsBoolean

TaskExec方法的语法包含下列部分:

部分

描述

Object

必需的。

代表一个对象表达式,其值是U8login对象

pAuth_id

必需的。

bIsLock=10子产品号

其余功能号

bIsLock

必需的。

申请锁的类型

=10判断当前子系统是否已买授权

=2仅判断当前操作员是否对功能pAuth_id在登录的账套、年度里具有操作权限,不判断功能号是否存在,推荐使用=1

=1判断当前操作员在登录账套是否有功能权限,可以切换年度,不输,默认登录年度

=-1判断当前操作员是否有功能权限且申请的功能权限是否与其他正在运行的功能互斥

=0释放权限

=3同=-1,特殊处理authtype=3的功能,bIsLock=3要求与非本机本模

块的reg互斥

=11判断当前子系统是否已买授权,授权与年度有关,当前年度<=加密狗年度,授权允许,否则不允许

=12判断当前子系统是否已买授权,若没有买授权,是否超过演示版,超过演示版=false

iYear

可选项,年度

返回值:

True成功

False失败

举例

'执行功能申请

PrivateSubmnu_taskApply_Click()

Callvblogin.ConstructLogin(ologin.userToken)

vblogin.TaskId=ologin.GetTaskID("GL")

Ifvblogin.login("GL")=FalseThen

MsgBox"createu8loginfailed"+vblogin.ShareString

ExitSub

EndIf

Ifvblogin.TaskExec("WA01012",-1)=FalseThen

Ifvblogin.LogState<>0Then

MsgBoxvblogin.ShareString

Else

MsgBox"出现无法预知的错误,无法申请功能!

"

EndIf

ExitSub

Else

MsgBox"OK_WA01012"

EndIf

EndSub

2.TaskExecEx方法

执行功能申请,判断业务的互斥操作,提供按照分类进行授权

TaskExecEx方法的语法包含下列部分:

部分

描述

Object

必需的。

代表一个对象表达式,其值是U8login对象

pAuth_id

必需的。

bIsLock=10子产品号

其余功能号

bIsLock

必需的。

申请锁的类型

=10判断当前子系统是否已买授权

=2仅判断当前操作员是否对功能pAuth_id在登录的账套、年度里具有操作权限,不判断功能号是否存在,推荐使用=1

=1判断当前操作员在登录账套是否有功能权限,可以切换年度,不输,默

认登录年度

=-1判断当前操作员是否有功能权限且申请的功能权限是否与其他正在运行的功能互斥

=0释放权限

=3同=-1,特殊处理authtype=3的功能,bIsLock=3要求与非本机本模块的reg互斥

=11判断当前子系统是否已买授权,授权与年度有关,当前年度<=加密狗年度,授权允许,否则不允许

=12判断当前子系统是否已买授权,若没有买授权,是否超过演示版,超过演示版=false

iYear

可选项,年度

pAuthClassCode

业务分类,如:

工资类别,

如果输入这个参数,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1