CN105227314A - 一种登录进入系统桌面的方法及装置 - Google Patents

一种登录进入系统桌面的方法及装置 Download PDF

Info

Publication number
CN105227314A
CN105227314A CN201510542433.4A CN201510542433A CN105227314A CN 105227314 A CN105227314 A CN 105227314A CN 201510542433 A CN201510542433 A CN 201510542433A CN 105227314 A CN105227314 A CN 105227314A
Authority
CN
China
Prior art keywords
certificate server
user
login
otp
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510542433.4A
Other languages
English (en)
Other versions
CN105227314B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201510542433.4A priority Critical patent/CN105227314B/zh
Publication of CN105227314A publication Critical patent/CN105227314A/zh
Application granted granted Critical
Publication of CN105227314B publication Critical patent/CN105227314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种登录进入系统桌面的方法及装置,涉及信息安全领域。所述方法包括,先验证用户信息,待用户信息验证通过后,弹出推送动画窗口,同时向认证服务器发送登录请求,若收到认证服务器返回的允许登录消息,则成功登录进入系统桌面,否则弹出人机交互界面提示输入OTP,并将接收到的OTP发送给认证服务器进行验证,若收到认证服务器返回的验证通过消息,则成功登录进入系统桌面,否则登录失败。本发明提供的方法,可以增强系统登录保护强度,提高系统安全性。

Description

一种登录进入系统桌面的方法及装置
技术领域
本发明涉及信息安全领域,尤其涉及一种登录进入系统桌面的方法及装置。
背景技术
在实际应用中,用户在登录计算机系统时,为了提高安全性,常会采用各种各样的认证方式进行登录。但是,在现有技术中,Windows系统弹出的人机交互界面,仅是供用户输入用户名和密码的人机交互界面。因此也只允许用户通过输入用户名和密码的认证方式进行系统的登录,若要通过上述输入用户名和密码以外的认证方式如远程推送认证方式或动态口令(OTP)认证方式登录进入系统桌面时,Windows系统则无法弹出相应的人机交互界面用以提示已发送推送通知或提示用户输入OTP进行身份认证。
发明内容
为解决现有技术中的问题,本发明提出了一种基于云信双因素认证的登录进入系统桌面的方法及装置。使Windows系统可以弹出与认证方式相对应的人机交互界面,以便用户可以通过其他认证方式登录进入系统桌面。
本发明采用的技术方案如下:
本发明提供的一种登录进入系统桌面的方法,通过调用函数实现,当函数被调用时执行以下步骤:
步骤S1:获取用户输入的用户名和密码,判断所述用户名和所述密码是否匹配,是则执行步骤S2,否则赋值预设参数为第一预设值,退出函数;
步骤S2:向认证服务器发送登录请求,判断是否收到认证服务器返回的允许登录响应,是则退出函数;否则提示用户输入OTP,执行步骤S3;
步骤S3:获取用户输入的OTP,并发送给认证服务器进行认证,判断是否接收到认证服务器返回的认证成功信息,是则退出函数,否则赋值预设参数为第一预设值,退出函数。
本发面提供的一种登录进入系统桌面的装置,包括以下功能模块:
获取模块,用于获取用户名和密码,并将获取的用户名和密码传给第一判断模块,用于获取用户输入的OTP,并将获取的OTP传给发送模块;
第一判断模块,用于判断获取模块获取的所述用户名和所述密码是否匹配,是则触发发送模块工作,否则赋值预设参数为第一预设值;
发送模块,用于当收到第一判断模块的触发时向认证服务器发送登录请求,并触发第二判断模块工作;用于当收到第二判断模块的触发时向认证服务器发送OTP,并触发第三判断模块工作;
第二判断模块,用于判断是否收到认证服务器返回的允许登录响应,并且当判断未收到认证服务器返回的允许登录响应时,提示用户输入OTP,并触发获取模块工作;
第三判断模块,用于判断是否接收到认证服务器返回的认证成功信息,并且当判断未接收到认证服务器返回的认证成功信息时,赋值预设参数为第一预设值;
其中,所述预设参数用作系统判定是否允许当前用户登录进入系统桌面的依据,当且仅当所述预设参数不等于第一预设值时,系统允许当前用户登录进入系统桌面。
本发明采用上述技术方案达到的有益效果如下:在现有的单一的采用用户名和密码登录方式上,增加云信双因素认证方式,增强了系统登录保护强度,提高了系统安全性。
附图说明
图1是本发明实施例1提供的一种登录进入系统桌面的方法的流程图;
图2是图1中步骤S7的具体细化流程图;
图3是本发明实施例2提供的一种云信双因素认证流程图;
图4是本发明实施例3提供的一种登录进入系统桌面的装置框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在Windows系统中,本发明实施例提供的用户登录进入系统桌面的流程为:在Windows系统加载后,弹出人机交互界面提示输入登录信息(用户名和密码),待登录信息验证通过后,弹出推送动画窗口,同时向认证服务器发送登录请求,若收到认证服务器返回的允许登录消息,则成功登录进入系统桌面,否则弹出人机交互界面提示输入OTP,并将接收到的OTP发送给认证服务器进行验证,若收到认证服务器返回的验证通过消息,则成功登录进入系统桌面,否则登录失败。
上述流程的具体实现包括:本地安全进程(LSA)调用窗口登录(Winlogon)进程,Winlogon进程调用登录用户接口(LogonUI)进程并弹出人机交互界面,用户在弹出的人机交互界面中输入登录信息(即用户名和密码),LogonUI进程将用户输入的登录信息枚举并注册在注册表路径下的所有凭据提供程序(CP)中,CP对用户信息进行收集,并将收集到的信息返回给Winlogon进程,Winlogon进程将获取的信息提供给LSA,LSA根据信息调用相对应的程序对用户的身份进行认证。
其中,CP(CredentialProvider,凭据提供程序)模块是Windows系统的组成部分,CP模块注册到注册表中如下键值下:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\CredentialProviderFilters]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential
ProviderFilters\{FDFD407C-266C-4085-8DAE-F3E276336E4B}]
""="OTPAgentCP"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\CredentialProviders\{FDFD407C-266C-4085-8DAE-F3E276336E4B}]="OTPAgentCP"
[HKEY_CLASSES_ROOT\CLSID\{FDFD407C-266C-4085-8DAE-F3E276336E4B}]="OTPAgentCP"
[HKEY_CLASSES_ROOT\CLSID\{FDFD407C-266C-4085-8DAE-F3E276336E4B}\InprocServer32]
="程序安装目录下\\OTPAgentCP.dll"
"ThreadingModel"="Apartment"
其中FDFD407C-266C-4085-8DAE-F3E276336E4B是CP的COM组件的GUID。
实施例1
本实施例提供的一种登录进入系统桌面的方法的具体实现如图1所示,具体包括:
当CP模块中函数GetSerialization被系统调用时,执行步骤S1;
本实施例中具体的,函数GetSerialization的具体实现如下:
GetSerialization(
CREDENTIAL_PROVIDER_GET_SERIALIZATION_RESPONSE*pcpgsr,
CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION*pcpcs,
PWSTR*ppwszOptionalStatusText,
CREDENTIAL_PROVIDER_STATUS_ICON*pcpsiOptionalStatusIcon)
步骤S1:根据预设标志位判断登录方式,若是远程登录则执行步骤S2,若是本地登录则执行步骤S4;
本实施例中具体的,所述预设标志位是在CP模块中函数SetSerialization被调用时设置的。
具体的,当函数SetSerialization被调用时执行步骤1-1;
优选的,函数SetSerialization的具体实现如下:
SetSerialization(
constCREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION*pcpcs
)
其中,pcpcs为结构体,具体如下:
步骤1-1:初始化预设标志位和当前记录;
步骤1-2:调用系统函数CredUnPackAuthenticationBuffer;
具体的,函数CredUnPackAuthenticationBuffer的具体实现为:
dwFlags:值验证缓冲包装,此处传CRED_PACK_PROTECTED_CREDENTIALS
pAuthBuffer:认证buffer,此处传pcpcs->rgbSerialization
cbAuthBuffer:认证buffer大小此处传pcpcs->cbSerialization
pszUserName:用户名指针,OUT的值
pcchMaxUserName:用户名大小,OUT值
pszDomainName:域名指针,OUT值
pcchMaxDomainName:域名大小,OUT值
pszPassword:密码指针,OUT值
pcchMaxPassword:密码大小,OUT值
步骤1-3:根据系统函数CredUnPackAuthenticationBuffer返回获得用户名和域名;
步骤1-4:将获得的用户名和域名返回给函数SetSerialization,判断返回的用户名和域名是否为空,若为空,则确认为本地登录,设置预设标志位为本地登录标志,否则确认为远程登录,记录返回的所述用户名和域名,并设置预设标志位为远程登录标志。
步骤S2:获取用户名和域名;
具体的,调用自定义函数MyCredUIParseUserName获取用户名和域名。
本步骤获取到的用户名和域名为当前记录的用户名和域名。
步骤S3:通过用户名和域名进行云信双因素认证,若认证失败则赋值预设参数为第一预设值,若认证成功则赋值预设参数为第二预设值,退出函数GetSerialization;
本步骤具体为以下步骤:
步骤i1:调用云信双因素自定义函数Process_Login;
步骤i2:判断函数返回是否为0,是则认证成功,执行步骤i3,否则认证失败,执行步骤i3;
步骤i3:当云信双因素认证结果为认证失败时,赋值预设参数为第一预设值,当云信双因素认证结果为认证成功时,赋值预设参数为第二预设值;
具体的,云信双因素自定义函数Process_Login的具体实现为:
Process_Login(constchar*szName,constchar*szDomain),其中,参数szName为用户名,参数szDomain为域名。
本实施例中,所述预设参数为pcpcs,若认证成功,则设置pcpcs=CPGSR_RETURN_CREDENTIAL_FINISHED,若认证失败,则设置pcpcs=CPGSR_NO_CREDENTIAL_NOT_FINISHED。
步骤S4:获取带域名的用户名和密码;
具体的,根据用户输入,调用系统函数GetStringValue获取带域名的用户名和密码。
所述系统函数GetStringValue具体如下:
HRESULTCOTPCredential::GetStringValue(
DWORDdwFieldID,
PWSTR*ppwsz,
)
其中,参数dwFieldID为索引值,参数ppwsz为索引值对应的取值。具体的,若索引值dwFieldID为1则通过获取返回值ppwsz获取用户名,若索引值dwFieldID为2则通过获取返回值ppwsz获取密码。
步骤S5:解析所述带域名的用户名得到用户名和域名;
具体的,调用自定义函数MyCredUIParseUserName解析带域名的用户名得到用户名和域名。
步骤S6:判断所述用户名和所述密码是否匹配,是则执行步骤S7,否则执行步骤S8;
具体的,将所述用户名和所述密码作为参数,调用系统函数LogonUser,根据函数LogonUser返回判断用户名和密码是否匹配。
函数LogonUser的具体实现为:
其中,参数lpszUsername为用户名,参数lpszDomain为域名,参数lpszPassword为密码。
若函数LogonUser返回0,则用户名和密码匹配,执行步骤S7,若函数LogonUser返回非0,则用户名和密码不匹配,执行步骤S8。
步骤S7:通过用户名和域名进行云信双因素认证,若认证失败则赋值预设参数为第一预设值,退出函数GetSerialization;
本步骤具体为,调用云信双因素自定义函数Process_Login,根据函数Process_Login的返回判断是否认证成功,若函数返回0则认证成功,若函数返回非0则认证失败。
本步骤具体为以下步骤,如图2所示:
步骤a1:调用云信双因素自定义函数Process_Login;
步骤a2:判断函数返回是否为0,是则认证成功,否则认证失败;
进一步的,步骤a2之后还执行:
步骤a3:调用系统函数GetSerialization,设置预设参数;
具体的,调用系统函数GetSerialization,以及给系统函数GetSerialization的参数pcpcs(即本发明中所述预设参数)设置值,涉及内容是现有技术中的一系列系统操作,在此不做过多介绍。
步骤a4:当云信双因素认证结果为认证失败时,赋值预设参数为第一预设值;
具体的,云信双因素自定义函数Process_Login的具体实现为:
Process_Login(constchar*szName,constchar*szDomain),其中,参数szName为用户名,参数szDomain为域名。
本实施例中,所述预设参数为pcpcs,若认证失败,则设置pcpcs=CPGSR_NO_CREDENTIAL_NOT_FINISHED。
其中在步骤a1和步骤a2的执行过程中包含有推送认证方式和OTP认证方式,现有技术通过用户名和密码验证是否登录进入系统桌面的流程即通过上述步骤a3实现,本发明通过执行步骤a1和a2给预设参数赋值,在步骤a3调用系统函数GetSerialization进行一系列操作(其中包含根据操作给预设参数赋值),在步骤a4中根据步骤a1和步骤a2的执行结果对预设参数的值进行改写。所述预设参数pcpcs是用作系统判定是否允许当前用户登录进入系统桌面的依据,即执行完上述步骤a1-a4之后,系统获取所述预设参数并判断,当且仅当所述预设参数不等于第一预设值时,允许当前用户登录进入系统桌面。
步骤S8:赋值预设参数为第一预设值,退出函数GetSerialization;
具体的,调用系统函数GetSerialization,并设置预设参数为第一预设值,然后退出函数GetSerialization。
实施例2
本实施例提供了一种云信双因素认证流程,具体通过函数Process_Login来实现,可应用于实施例1中,如图3所示,当函数Process_Login被调用时,执行以下步骤:
步骤1:判断是否是UAC(UserAccountControl,用户帐户控制)操作,如果是,则退出Process_Login,函数返回非0,否则执行步骤2;
步骤2:初始化配置文件;
具体的,在当前程序安装目录下,判断是否存在配置文件"OTPAgentConfig.ini",如不存在,则提示初始化配置文件失败,退出Process_Login,函数返回非0;如存在,则读取配置文件的内容,判断读取的内容中是否存在第一配置信息APIHost、第二配置信息IDKey和第三配置信息SecretKey,是则读取第一配置信息APIHost对应的值(应用服务地址)、第二配置信息IDKey对应的值(应用标识)和第三配置信息SecretKey对应的值(应用安全密钥),继续读取其他配置项,否则退出Process_Login,函数返回非0。
所述初始化配置文件具体包括:
1)初始化日志文件:
具体包括:调用自定义函数InitOTPAgentLog,获取日志目录和日志级别,并将获取的日志目录和日志级别作为传入参数,调用日志初始化函数对日志文件进行初始化操作。
所述日志初始化函数如下:intlog_ts_init(char*logpath,intloglevel),其中参数Logpath为日志目录,参数Loglevel为日志级别。
2)初始化认证策略:
具体包括:调用自定义函数InitOTPAgentPolicy,从配置文件中获取用户名格式标识和用户登录使能标识,当用户登录使能标识为1时开启用户认证,根据用户名格式标识的取值初始化用户名认证方式,例如,若用户名格式标识为1,则用户名认证方式是User,若用户名格式标识为2,则用户名认证方式是UserIP,若用户名格式标识为3,则用户名认证方式是UserDomain。
进一步的,当用户名认证方式是UserIP时,还包括从配置文件中获取IP地址,所述从配置文件中获取IP地址具体为:判断配置文件中是否存在指定IP地址,若存在则直接获取该IP地址,否则调用自定义函数intgetLocalIp(vector<string>&VecIp)获取IP地址列表,从获取的IP地址列表中获取一个IP地址。所述从IP地址列表中获取一个IP地址具体为:若IP列表中存在一个IP地址,则直接获取该IP地址,若IP列表中存在多个IP地址,则通过调用自定义函数intgetIp(string&strIp)获取最大IP地址。
当用户登录使能标识为0时禁用用户认证,直接退出Pocess_Login,函数返回非0。
步骤3:调用自定义函数init,连接认证服务器;
具体的,函数init的实现如下:
init(char*url,char*app_id,char*app_secret)
参数url:应用服务地址
参数app_id:应用标识
参数app_secret:应用安全密钥
进一步的,还包括判断函数init的返回是否为0,是则成功连接认证服务器,执行步骤4,否则退出Process_Login,函数返回非0。
当函数init返回非0时,还包括判断失败次数是否已经达到3次,如果达到,判断是否是远程登录,如果是直接退出Process_Login并提示鉴权初始化失败,函数返回非0;如果不是则直接退出Process_Login,函数返回0。
步骤4:调用自定义函数check_user判断用户策略,若是第一用户策略则执行步骤5,若是其他则退出Process_Login,函数返回非0。
具体的,所述自定义函数check_user具体如下:
intWINAPIcheck_user(char*user_id,int*user_policy,int*newuser_policy);
参数user_id用户名称
参数user_policy:用户策略
参数newuser_policy:新用户策略
本步骤具体包括:
步骤4-1:获取参数user_policy并判断该参数的值,如果user_policy等于0,则执行步骤5;如果user_policy等于1,则直接退出Process_Login,并提示禁止用户登录,函数返回非0;如果user_policy等于2,则直接退出Process_Login,函数返回0,其他情况则执行步骤4-2;
具体的,如果user_policy等于0则确定用户策略为第一用户策略。
步骤4-2:获取参数newuser_policy并判断该参数的值,如果newuser_policy等于0,则直接退出Process_Login,并提示用户需要注册,函数返回非0;如果newuser_policy等于1,则直接退出Process_Login,并提示新用户禁止登录,函数返回非0;如果newuser_policy等于2,则直接退出Process_Login,函数返回0,其他则执行步骤4-3;
步骤4-3:直接退出Process_Login,并作相应的错误提示,函数返回非0。
步骤5:调用自定义函数OTP_ShowDlg_Push_Login,控制显示屏弹出推送动画窗口,调用自定义函数push_auth,向认证服务器发送登录请求;
具体的,自定义函数OTP_ShowDlg_Push_Login的具体实现如下:
OTP_ShowDlg_Push_Login(ProcFunTypepFun,void*pParam,HWNDhWndParent,WNDPROCLoginDialogProc),其中,参数pParam为指向OTPAuthAgent的对象指针,OTPAuthAgent中包含要弹出的窗口标识。
自定义函数push_auth的具体实现如下:push_auth(char*user_name,int*retry),其中,参数user_name为用户名,参数retry为重试次数。
进一步的,当函数push_auth被调用时,Windows系统以https的方式向认证服务器发送包含用户名的户名信息,认证服务器从数据库中查找是否存在该用户名,若存在则向与该用户名绑定的手机端下发推送通知,并接收手机端返回的“允许”或“拒绝“消息,然后根据接收到的消息确定是否向Windows系统返回允许登录响应。
步骤6:根据自定义函数push_auth的返回值判断是否收到认证服务器返回的允许登录响应,是则退出Process_Login,函数返回0,否则执行步骤7;
具体的,判断函数push_auth的返回值是否为true,是则判断为收到认证服务器返回的允许登录响应,退出Process_Login,函数返回0。
进一步的,当函数push_auth返回值为true时,还包括:通过调用系统函数PostMessage发送自定义消息WM_AUTH_NOTIFY到推送动画窗口,关闭推送动画窗口。
其中,系统函数PostMessage定义如下:
其中,hWnd是要通知的窗口句柄,Msg是通知的消息WM_AUTH_NOTIFY,wParam的低位存储的是消息类型,例如:O_AUTH_SUCCESS表示认证成功,O_AUTH_RETRY表示认证失败可重试,lParam低位存储重试次数,O_AUTH_FAILED表示认证失败,lParam低位存储错误码。
步骤7:通过系统函数PostMessage发送自定义消息WM_AUTH_NOTIFY到推送动画窗口,推送动画窗口返回相应错误码给自定义函数OTP_ShowDlg_Push_Login,关闭推送动画窗口;
具体的,当函数push_auth返回值为false时,通过系统函数PostMessage发送自定义消息WM_AUTH_NOTIFY到推送动画窗口,推送动画窗口获取相应错误码之后返回给自定义函数OTP_ShowDlg_Push_Login,关闭推送动画窗口,函数OTP_ShowDlg_Push_Login根据错误码返回表示拒绝登录或者是没有绑定令牌的错误信息给函数Process_Login。
步骤8:根据自定义函数OTP_ShowDlg_Push_Login的返回值判断错误类型,若是没有可推送的终端则执行步骤9,若是其他则退出Process_Login,函数返回非0;
步骤9:调用自定义函数OTP_ShowDlg_Login,控制显示屏弹出提示输入OTP的界面;
具体的,自定义函数OTP_ShowDlg_Login的具体实现如下:
INT_PTROTP_ShowDlg_Login(ProcFunTypepFun,void*pParam,HWNDhWndParent,WNDPROCLoginDialogProc),其中,参数pParam为指向OTPAuthAgent的对象指针,OTPAuthAgent中包含要弹出的窗口标识。
步骤10:调用系统函数GetWindowTextA获取用户输入的OTP,调用自定义函数user_otp_auth将获取的OTP发送给认证服务器;
具体的,当用户输入一个6位的OTP并按键确认后,调用系统函数GetWindowTextA获取用户输入的OTP,通过调用自定义函数user_otp_auth将获取的OTP发送给认证服务器。
所述系统函数GetWindowTextA具体如下:
intWINAPIGetWindowTextA(
__inHWNDhWnd,
__out_ecount(nMaxCount)LPSTRlpString,
__inintnMaxCount);
其中,参数hWndotp表示输入框句柄,参数lpString表示输入框数据缓存,参数nMaxCount表示输入框数据缓存大小,调用该系统函数得到的函数返回值即为用户输入的OTP。
所述自定义函数user_otp_auth具体如下:(char*szName,char*otp,int*retry),
其中,参数szName表示用户名,参数otp表示发送给认证服务器的OTP,参数retry表示重试次数。
优选的,Windows系统以https的方式向认证服务器发送包含用户名和OTP的信息。
进一步的,认证服务器接收到主机发来的包含用户名和OTP的信息后,认证服务器查找数据库中是否存在该用户名,如存在,则生成相应的动态口令,并与接收到的OTP进行比较,若相等则表示认证通过,向主机返回认证通过消息;若不相等,则向主机返回认证未通过消息和重试次数。如该用户名不存在,则向主机返回用户不存在的回复信息,显示错误提示,退出Process_Login函数,返回非0值。
步骤11:根据自定义函数user_otp_auth的返回值判断是否登录成功,是则退出Process_Login,函数返回0,否则退出Process_Login,函数返回非0。
具体的,判断自定义函数user_otp_auth的返回值是否为true,是则登录成功,退出Process_Login,函数返回0;否则控制显示屏弹出提示登录失败的界面,退出Process_Login,函数返回非0。
进一步的,当函数user_otp_auth返回值为true时,还包括:通过调用系统函数PostMessage发送自定义消息WM_AUTH_NOTIFY到OTP认证窗口(即输入OTP的界面),关闭OTP认证窗口;
当函数user_otp_auth返回值为false时,通过调用系统函数PostMessage发送自定义消息WM_AUTH_NOTIFY到OTP认证窗口,窗口获取相应错误码之后返回给函数OTP_ShowDlg_Login,关闭OTP认证窗口。
实施例3
本实施例提供了一种基于实施例1所述方法流程的登录进入系统桌面的装置,如图4所示,该装置包括获取模块101、第一判断模块102、发送模块103、第二判断模块104和第三判断模块105,各个模块的功能具体如下:
获取模块101,用于获取用户名和密码,并将获取的用户名和密码传给第一判断模块102,用于获取用户输入的OTP,并将获取的OTP传给发送模块103;
第一判断模块102,用于判断获取模块101获取的所述用户名和所述密码是否匹配,是则触发发送模块103工作,否则赋值预设参数为第一预设值;
发送模块103,用于当收到第一判断模块102的触发时向认证服务器发送登录请求,并触发第二判断模块104工作;用于当收到第二判断模块104的触发时向认证服务器发送OTP,并触发第三判断模块105工作;
第二判断模块104,用于判断是否收到认证服务器返回的允许登录响应,是则停止工作,否则提示用户输入OTP,并触发获取模块101工作;
第三判断模块105,用于判断是否接收到认证服务器返回的认证成功信息,是则不赋值,否则赋值预设参数为第一预设值。
所述预设参数用作系统判定是否允许当前用户登录进入系统桌面的依据,当且仅当所述预设参数不等于第一预设值时,系统允许当前用户登录进入系统桌面。
进一步的,该装置还可以包括第四判断模块,用于根据预设标志位判断登录方式,若是本地登录则触发获取模块101工作,若是远程登录则获取当前用户的用户名和域名之后触发发送模块103工作;相应的,第三判断模块105,还用于当判断接收到认证服务器返回的认证成功信息时,赋值预设参数为第二预设值。
上述发送模块103包括连接单元、判断单元和初始化单元,各个单元的功能如下:
连接单元,用于连接认证服务器;
判断单元,用于判断用户策略,若是第一用户策略则向认证服务器发送登录请求,并触发第二判断模块104工作;若是其他用户策略则赋值预设参数为第一预设值;还用于判断是否是用户帐户控制操作,是则赋值预设参数为第一预设值,否则触发初始化单元工作;
初始化单元,用于初始化配置文件之后触发所述连接单元工作。具体的,初始化配置文件包括初始化日志文件和初始化认证策略。
进一步的,本实施例提供的装置还可以包括控制模块;
所述控制模块,用于当所述发送模块103向认证服务器发送登录请求时,控制显示屏弹出推送动画窗口;用于当所述第二判断模块104判断接收到认证服务器返回的允许登录响应时,控制显示屏关闭所述推送动画窗口。
以上对本发明所提供的方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种登录进入系统桌面的方法,通过调用函数实现,其特征在于,包括:
步骤S1:获取用户输入的用户名和密码,判断所述用户名和所述密码是否匹配,是则执行步骤S2,否则赋值预设参数为第一预设值,退出函数;
步骤S2:向认证服务器发送登录请求,判断是否收到认证服务器返回的允许登录响应,是则退出函数;否则提示用户输入OTP,执行步骤S3;
步骤S3:获取用户输入的OTP,并发送给认证服务器进行认证,判断是否接收到认证服务器返回的认证成功信息,是则退出函数,否则赋值预设参数为第一预设值,退出函数;
所述预设参数用作系统判定是否允许当前用户登录进入系统桌面的依据,当且仅当所述预设参数不等于第一预设值时,系统允许当前用户登录进入系统桌面。
2.如权利要求1所述的方法,其特征在于:所述步骤S1之前还包括,根据预设标志位判断登录方式,若是本地登录则执行步骤S1,若是远程登录则获取当前用户的用户名和域名,然后执行步骤S2和步骤S3;
所述步骤S3中当接收到认证服务器返回的认证成功信息时,还包括赋值预设参数为第二预设值。
3.如权利要求1所述的方法,其特征在于:所述步骤S1与步骤S2之间还包括,
步骤a1:连接认证服务器;
步骤a2:判断用户策略,若是第一用户策略则执行步骤S2,否则赋值预设参数为第一预设值,退出函数。
4.如权利要求3所述的方法,其特征在于:所述步骤a1之前还包括,判断是否是用户帐户控制操作,是则赋值预设参数为第一预设值,退出函数;否则初始化配置文件,执行步骤a1。
5.如权利要求4所述的方法,其特征在于:所述初始化配置文件包括,初始化日志文件和初始化认证策略。
6.如权利要求1所述的方法,其特征在于:所述向认证服务器发送登录请求的同时,还包括在显示屏上弹出推送动画窗口;当接收到认证服务器返回的所述允许登录响应时,还包括关闭所述推送动画窗口。
7.一种登录进入系统桌面的装置,其特征在于,包括:
获取模块,用于获取用户名和密码,并将获取的用户名和密码传给第一判断模块,用于获取用户输入的OTP,并将获取的OTP传给发送模块;
第一判断模块,用于判断获取模块获取的所述用户名和所述密码是否匹配,是则触发发送模块工作,否则赋值预设参数为第一预设值;
发送模块,用于当收到第一判断模块的触发时向认证服务器发送登录请求,并触发第二判断模块工作;用于当收到第二判断模块的触发时向认证服务器发送OTP,并触发第三判断模块工作;
第二判断模块,用于判断是否收到认证服务器返回的允许登录响应,并且当判断未收到认证服务器返回的允许登录响应时,提示用户输入OTP,并触发获取模块工作;
第三判断模块,用于判断是否接收到认证服务器返回的认证成功信息,并且当判断未接收到认证服务器返回的认证成功信息时,赋值预设参数为第一预设值;
所述预设参数用作系统判定是否允许当前用户登录进入系统桌面的依据,当且仅当所述预设参数不等于第一预设值时,系统允许当前用户登录进入系统桌面。
8.如权利要求7所述的装置,其特征在于,还包括第四判断模块,用于根据预设标志位判断登录方式,若是本地登录则触发获取模块工作,若是远程登录则获取当前用户的用户名和域名之后触发发送模块工作;
所述第三判断模块,还用于当判断接收到认证服务器返回的认证成功信息时,赋值预设参数为第二预设值。
9.如权利要求7所述的装置,其特征在于:所述发送模块包括连接单元和判断单元;
所述连接单元,用于连接认证服务器;
所述判断单元,用于判断用户策略,若是第一用户策略则向认证服务器发送登录请求,并触发第二判断模块工作;若是其他用户策略则赋值预设参数为第一预设值。
10.如权利要求9所述的装置,其特征在于:所述发送模块还包括初始化单元;
所述判断单元,还用于判断是否是用户帐户控制操作,是则赋值预设参数为第一预设值,否则触发初始化单元工作;
所述初始化单元,用于初始化配置文件之后触发所述连接单元工作。
11.如权利要求10所述的装置,其特征在于:所述初始化单元,具体用于初始化日志文件和初始化认证策略。
12.如权利要求7所述的装置,其特征在于:所述装置还包括控制模块;
所述控制模块,用于当所述发送模块向认证服务器发送登录请求时,控制显示屏弹出推送动画窗口;用于当所述第二判断模块判断接收到认证服务器返回的允许登录响应时,控制显示屏关闭所述推送动画窗口。
CN201510542433.4A 2015-08-28 2015-08-28 一种登录进入系统桌面的方法及装置 Active CN105227314B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510542433.4A CN105227314B (zh) 2015-08-28 2015-08-28 一种登录进入系统桌面的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510542433.4A CN105227314B (zh) 2015-08-28 2015-08-28 一种登录进入系统桌面的方法及装置

Publications (2)

Publication Number Publication Date
CN105227314A true CN105227314A (zh) 2016-01-06
CN105227314B CN105227314B (zh) 2020-02-21

Family

ID=54996033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510542433.4A Active CN105227314B (zh) 2015-08-28 2015-08-28 一种登录进入系统桌面的方法及装置

Country Status (1)

Country Link
CN (1) CN105227314B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106534219A (zh) * 2016-12-31 2017-03-22 中国移动通信集团江苏有限公司 用于桌面云门户的安全认证方法和装置
CN107809441A (zh) * 2017-12-12 2018-03-16 国网湖南省电力有限公司 基于多窗口的电力系统计算机设备的远程连接方法及系统
CN110032414A (zh) * 2019-03-06 2019-07-19 联想企业解决方案(新加坡)有限公司 远程控制台模式下安全的用户认证的装置和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752319A (zh) * 2012-07-31 2012-10-24 广州市品高软件开发有限公司 一种云计算安全访问方法、装置及系统
CN103401883A (zh) * 2013-08-16 2013-11-20 深信服网络科技(深圳)有限公司 单点登录方法及系统
US20140282978A1 (en) * 2013-03-15 2014-09-18 Sergio Demian LERNER Method and apparatus for secure interaction with a computer service provider
CN104168329A (zh) * 2014-08-28 2014-11-26 尚春明 云计算及互联网中的用户二次认证方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752319A (zh) * 2012-07-31 2012-10-24 广州市品高软件开发有限公司 一种云计算安全访问方法、装置及系统
US20140282978A1 (en) * 2013-03-15 2014-09-18 Sergio Demian LERNER Method and apparatus for secure interaction with a computer service provider
CN103401883A (zh) * 2013-08-16 2013-11-20 深信服网络科技(深圳)有限公司 单点登录方法及系统
CN104168329A (zh) * 2014-08-28 2014-11-26 尚春明 云计算及互联网中的用户二次认证方法、装置和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106534219A (zh) * 2016-12-31 2017-03-22 中国移动通信集团江苏有限公司 用于桌面云门户的安全认证方法和装置
CN107809441A (zh) * 2017-12-12 2018-03-16 国网湖南省电力有限公司 基于多窗口的电力系统计算机设备的远程连接方法及系统
CN110032414A (zh) * 2019-03-06 2019-07-19 联想企业解决方案(新加坡)有限公司 远程控制台模式下安全的用户认证的装置和方法
CN110032414B (zh) * 2019-03-06 2023-06-06 联想企业解决方案(新加坡)有限公司 远程控制台模式下安全的用户认证的装置和方法

Also Published As

Publication number Publication date
CN105227314B (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
US10686602B2 (en) Portable device interface methods and systems
CN102143482B (zh) 一种手机银行客户端信息认证方法
CN105847245B (zh) 一种电子邮箱登录认证方法和装置
US20150271164A1 (en) Methods and systems for data entry
CN105323253B (zh) 一种身份验证方法及装置
US10212151B2 (en) Method for operating a designated service, service unlocking method, and terminal
CN103095659B (zh) 一种互联网中账户登录方法和系统
US11563740B2 (en) Methods and systems for blocking malware attacks
US9344896B2 (en) Method and system for delivering a command to a mobile device
CN105407074A (zh) 身份验证方法、装置及系统
CN107113613B (zh) 服务器、移动终端、网络实名认证系统及方法
US10645077B2 (en) System and method for securing offline usage of a certificate by OTP system
CN104468487A (zh) 通信认证方法及装置、终端设备
CN105554146A (zh) 一种远程访问方法及装置
CN109861968A (zh) 资源访问控制方法、装置、计算机设备及存储介质
CN107318174A (zh) 一种通信方法、装置及终端
CN107453872A (zh) 一种基于Mesos容器云平台的统一安全认证方法及系统
CN103384254A (zh) 应用账户登陆方法、服务器、客户端及系统
CN115022047A (zh) 基于多云网关的账户登录方法、装置、计算机设备及介质
CN105100093B (zh) 一种身份认证的方法和服务器
CN105227314A (zh) 一种登录进入系统桌面的方法及装置
CN106209569A (zh) 一种企业即时通讯的鉴权方法及装置
US10354243B2 (en) Authentication method and a server
Osei et al. Cloud computing login authentication redesign
CN104601532A (zh) 一种登录账户的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant