登录控件包含860以前的老登录控件(VB组件)和为860版本以及以后的版本新开发的新登录控件(C#组件),为了兼容老产品,新、老登录控件同时并存,但是老的登录控件只保留登录接口,和属性、以及一些方法,登录逻辑由新的登录控件实现,同时支持老的组件在使用后台服务时对老的登录控件的不弹界面的调用。
登录过程涉及到的概念
1. 登录界面的应用服务器
2. 读取加密狗的加密服务器,负责管理连接站点数是否超过加密狗中的站点数 。
数据源在服务器端配置,是处理业务需要用到的数据库的连接信息(由数据库账套+实例决定)
3. 登录成功后服务端可以获得的登录信息
public class UserData
{
public string UserId;//用户名
public string Password;//密码
public string AccID;//帐套ID
public string iYear;//帐套年度
public string cSubID;//子系统号
public string AppServer;//应用服务器
public string DataSource;//数据源
public string ConnString;//年度库的连接串
public string operDate;//登陆界面的业务日期
public string WorkStationSerial;//工作站的唯一序列号
public long LanguageID;//语言
public bool IsCompanyVer;//是否集团帐套=true,集团版
}
附录:几种调用场景
(VB举例)
老的LOGIN控件如何替换成新的LOGIN控件?
步骤一:门户登录
Dim m_NetLogin as object
Set m_NetLogin = createobject(“UFSoft.U8.Framework.Login.UI.clsLogin”)
If m_NetLogin.login_2("DP") = False Then’(显示登录界面)
MsgBox m_NetLogin.ErrDescript
Else
MsgBox "login ok"
End If
步骤二:子系统登录
Dim oLoginContext As Object
Set oLoginContext = CreateObject("UFSoft.U8.Framework.LoginContext.ProductContext")
Set oLoginContext = m_NetLogin.SubLogin("GL")
If oLoginContext Is Nothing Then
MsgBox m_NetLogin.ErrDescript
Else
MsgBox "SubLogin ok"
End If
步骤三:构建老的LOGIN控件
DIM g_oLogin AS object
Set g_oLogin = CreateObject("U8Login.clsLogin")
Call g_oLogin.ConstructLogin(m_NetLogin.userToken)
g_oLogin.TaskId = m_NetLogin.GetTaskID("GL")’必须加上这句,否则task的值有可能不能使用
If g_oLogin.login("GL") = False Then
MsgBox g_oLogin.ShareString
Else
MsgBox "ConstructLogin ok"
End If
退出系统时要注销登录控件,新的登录包括三步注销:
步骤一:老的LOGIN控件的注销
g_oLogin.shutdown
步骤二:子系统注销
m_NetLogin.SubLogout ("GL")
步骤二:门户注销
m_NetLogin.shutdown
如何不需改登录控件,而支持新的登录过程
1. 弹出界面的登录必须使用新的登录控件
2. 新登录控件传给业务组的参数:账套、年度、登录日期的含义与以前有差异,
账套由(数据源@账×××)标示
年度字段不需要,登录的账套年度由登录日期决定
3. 后台服务调用老的login控件,可以不用修改接口,只是传账套信息时需将门户或者前台传过来的账套信息(数据源+账×××)作为账套参数传递进来
4. 如果后台服务需要切换账套和年度,知道登录数据源名称的,参数改为(数据源@新的账×××);如果不知道登录数据源名称的,参数改为(#@新的账×××),此时的数据源取应用服务器上默认的数据源