给准备用USBKey进行身份验证的朋友一点帮助
最近刚开始使用USBKey进行身份验证,结合ePass的开发文档,终于知道了从USBKey中读取用户的身份信息,这里贴出飞思Coffice办公系统中用来进行验证的代码,给准备使用USBKey进行身份验证的朋友一点帮助。
1
<%@ Page language="c#" Codebehind="Index.aspx.cs" AutoEventWireup="false" Inherits="UDS.SubModule.Login.index" %>
2
<HTML>
3
<HEAD>
4
<title>Coffice 系统</title>
5
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
6
<style type="text/css">
7
.Vibox { BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; WIDTH: 150px; COLOR: #003399; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; FONT-STYLE: normal; FONT-FAMILY: "Arial", "Helvetica", "sans-serif"; HEIGHT: 18px }
8
.Vibutton { BORDER-RIGHT: #006699 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #006699 1px solid; PADDING-LEFT: 1px; FONT-SIZE: 12px; PADDING-BOTTOM: 1px; MARGIN: 1px; BORDER-LEFT: #006699 1px solid; WIDTH: 60px; COLOR: #006699; PADDING-TOP: 1px; BORDER-BOTTOM: #006699 1px solid; FONT-FAMILY: "宋体"; HEIGHT: 18px; BACKGROUND-COLOR: #ffffff }
9
.Vitext { FONT-SIZE: 12px; COLOR: white; FONT-FAMILY: "宋体" }
10
.Mybuttona { background-image:url(../../Images/denglu.jpg); CURSOR: hand;}
11
.Mybuttonb { background-image:url(../../Images/quxiao.jpg); CURSOR: hand;border: 0px solid; }
12
</style>
13
</HEAD>
14
<BODY bgcolor="#353467" bgcolor= leftMargin="0" topMargin="0" onload='javascript: if(this.document.all.txtUsername.value=="") this.document.all.txtUsername.focus();else this.document.all.txtPassword.focus();'>
15
<span id="obj"></span>
16
<!--判断用户是否选择使用USBKey-->
17
<script language="javascript">
18
function needUsbKey(){
19
if (document.index.cb_isNeedUsbKey.checked==true)
20
{
21
obj.innerHTML="<OBJECT id='ePass' style='LEFT: 0px; TOP: 0px' height='0' width='0' classid='clsid:E740C5DF-3454-46A7-80EC-364D1ADB6CF0' name='ePass' VIEWASTEXT></OBJECT>";
22
}
23
}
24
</script>
25
<script language="VBScript">
26![](/Images/OutliningIndicators/InBlock.gif)
27
Dim FirstDigest
28
Dim Digest
29
Digest= "01234567890123456"
30
dim bErr
31![](/Images/OutliningIndicators/InBlock.gif)
32
sub ShowErr(Msg)
33
bErr = true
34
ErrMsg.innerHTML = "<input type='hidden' name='ErrMsg' Value='" & Msg & "'>"
35
End Sub
36![](/Images/OutliningIndicators/InBlock.gif)
37
function Validate()
38
Digest = "01234567890123456"
39
On Error Resume Next
40
bErr = false
41
ePass.GetLibVersion
42
43
If Err.number = &H1B6 Then
44![](/Images/OutliningIndicators/InBlock.gif)
45
ShowErr "Load ePass 1000 Safe Active Control"
46
Validate = false
47
Exit function
48
Else
49
50
ePass.OpenDevice 1, ""
51
52
If Err then
53
ShowErr "请勾选使用框,并插入USB_Key!"
54
Validate = false
55
ePass.CloseDevice
56
Exit function
57
End if
58
59
'ePass.ResetSecurityState 0
60
dim results
61
results = "01234567890123456"
62
results = ePass.GetStrProperty(7, 0, 0)
63![](/Images/OutliningIndicators/InBlock.gif)
64
If Err Then
65
ShowErr "Verify User PIN Failure!!!"
66
Validate = false
67
ePass.CloseDevice
68
Exit function
69
End If
70
71![](/Images/OutliningIndicators/InBlock.gif)
72
If Not bErr Then
73
ePass.ChangeDir &H300, 0, "ASP_DEMO"
74
If Err then
75
ShowErr "Change to demo directory"
76
Validate = false
77
ePass.CloseDevice
78
Exit function
79
End If
80
End If
81![](/Images/OutliningIndicators/InBlock.gif)
82![](/Images/OutliningIndicators/InBlock.gif)
83
'Open the first key file.
84
If Not bErr Then
85
ePass.OpenFile 0, 1
86
If Err Then
87
ShowErr "Open first KEY-file"
88
Validate = false
89
ePass.CloseDevice
90
Exit function
91
End If
92
93
End If
94![](/Images/OutliningIndicators/InBlock.gif)
95
'Do HASH-MD5-HMAC compute.
96
If Not bErr Then
97
Digest = ePass.HashToken (1, 2,"<%=RandData%>")
98
If Err Then
99
ShowErr "HashToken compute"
100
Validate = false
101
ePass.CloseDevice
102
Exit function
103
End If
104
DigestID.innerHTML = "<input type='hidden' name='Digest' Value='" & Digest & "'>"
105
snID.innerHTML = "<input type='hidden' name='SN_SERAL' Value='" & results & "'>"
106
End If
107
End If
108![](/Images/OutliningIndicators/InBlock.gif)
109
ePass.CloseDevice
110
111
End function
112
</script>
113
114
<form id="index" method="post" runat="server" onsubmit="Validate()">
115
<span id="DigestID"></span>
116
<span id="snID"></span>
117
<span id="ErrMsg"></span>
118
<table bgcolor="#353467" cellSpacing="0" cellPadding="0" width="100%" height="100%" border="0">
119
<tr><td width="443"></td>
120
<td width="357" align="center" valign="top">
121
<img border="0" src="../../Images/welcome.gif" width="224" height="117">
122
用户名:<asp:textbox id="txtUsername" runat="server" CssClass="Vibox"></asp:textbox>
123
<asp:requiredfieldvalidator id="rfvUsername" runat="server" ControlToValidate="txtUsername" ErrorMessage="*"></asp:requiredfieldvalidator>
124
密 码:<asp:textbox id="txtPassword" runat="server" CssClass="Vibox" TextMode="Password"></asp:textbox>
125
<asp:requiredfieldvalidator id="rfvPassword" runat="server" ControlToValidate="txtPassword" ErrorMessage="*"></asp:requiredfieldvalidator>
126
<asp:button id="btnSubmit" BorderWidth=0 BorderStyle=None Width="88" Height="43" runat="server" CssClass="Mybuttona" Text=""></asp:button>
127
<input class="Mybuttonb" style="width=88px;height=43px" type="reset" value="" name="Submit2"><p>
128
<span class="Vitext"><asp:CheckBox id="cb_isNeedUsbKey" runat="server" Text="使用USB_Key" Height="10px"></asp:CheckBox>
129
<asp:label id="lblErrorMessage" runat="server" Visible="False" ForeColor="Red" Width="128px">错误的用户名和口令</asp:label>
130
<p>建议在1024*768分辨率下浏览</p></td></tr>
131
</table>
132
</form>
133
</BODY>
134
</HTML>
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
25
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
113
![](/Images/OutliningIndicators/None.gif)
114
![](/Images/OutliningIndicators/None.gif)
115
![](/Images/OutliningIndicators/None.gif)
116
![](/Images/OutliningIndicators/None.gif)
117
![](/Images/OutliningIndicators/None.gif)
118
![](/Images/OutliningIndicators/None.gif)
119
![](/Images/OutliningIndicators/None.gif)
120
![](/Images/OutliningIndicators/None.gif)
121
![](/Images/OutliningIndicators/None.gif)
122
![](/Images/OutliningIndicators/None.gif)
123
![](/Images/OutliningIndicators/None.gif)
124
![](/Images/OutliningIndicators/None.gif)
125
![](/Images/OutliningIndicators/None.gif)
126
![](/Images/OutliningIndicators/None.gif)
127
![](/Images/OutliningIndicators/None.gif)
128
![](/Images/OutliningIndicators/None.gif)
129
![](/Images/OutliningIndicators/None.gif)
130
![](/Images/OutliningIndicators/None.gif)
131
![](/Images/OutliningIndicators/None.gif)
132
![](/Images/OutliningIndicators/None.gif)
133
![](/Images/OutliningIndicators/None.gif)
134
![](/Images/OutliningIndicators/None.gif)
(——文中代码来自于飞思Coffice办公系统)
支持TerryLee的创业产品Worktile
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com