Bài vi?t này ch?ng t? làm th? nào đ? s? d?ng đi?u khi?n ActiveX đư?c vi?t b?ng Visual
Cơ b?n 6.0 đ? tuôn ra các ch?ng ch? c?a ngư?i dùng Web xác th?c. Đi?u này
k? thu?t áp d?ng cho các trang Web s? d?ng xác th?c cơ b?n và Internet
Thám hi?m 4.x.
Vi?c t?o ra các đi?u khi?n ActiveX
- M? m?t đi?u khi?n ActiveX m?i trong Visual Basic.
- Tên d? án "tr?nh duy?t", và đ?t tên là đi?u khi?n ngư?i dùng "đăng xu?t."
- B?m đúp chu?t đi?u khi?n ngư?i dùng, và dán đo?n m? sau vào các
Khu v?c khai báo:
Const INTERNET_OPTION_END_BROWSER_SESSION = 42
Private Declare Function InternetSetOption Lib "wininet.dll" Alias
"InternetSetOptionA" _
(ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As
Any, ByVal lBufferLength As Long) As Integer
Public Function flushCredentials() As Integer
Dim h As Integer
h = InternetSetOption(0, INTERNET_OPTION_END_BROWSER_SESSION,
0, 0)
flushCredentials = h
End Function
- Lưu d? án c?a b?n.
- Làm cho các t?p tin .ocx. Bây gi? b?n có m?t đi?u khi?n ActiveX có công c?ng
ch?c năng và s? xóa thông tin đăng nh?p đ? đư?c s? d?ng đ? có đư?c quy?n truy c?p
đ? m?t trang web khi nó đư?c g?i là.
- Chu?n b? các đi?u khi?n ActiveX cho Internet phân ph?i. Đ? gói các
Đi?u khi?n ActiveX cho phân ph?i qua Internet, b?n c?n ph?i s? d?ng các
Đóng gói và tri?n khai add-in trong Visual Basic 6.0 đ? th?c hi?n m?t t?p CAB.
T?o ra m?t trang Web đ? ki?m tra các đi?u khi?n ActiveX
- T?o m?t thư m?c dư?i g?c trang Web c?a b?n, mà thư?ng là C:\Inetpub\Wwwroot.
- B?ng cách s? d?ng Microsoft Management Console ho?c d?ch v? Internet
Qu?n l?, thi?t l?p phương th?c b?o m?t đ? cho phép ch? xác th?c cơ b?n.
- T?o m?t trang Web đư?c đ?t tên Test1.htm mà n?m trong thư m?c t?o
trong bư?c 1 b?ng cách s? d?ng đo?n m? sau:
<HTML>
<BODY>
<SCRIPT language=javascript>
<!--
var obj1 = new ActiveXObject("browser.logoff")
//-->
</SCRIPT>
<br>
<INPUT type="button" value="Click to Logoff" id=button1 name=button1>
<SCRIPT for=button1 event=onclick LANGUAGE=javascript>
<!--
var x = obj1.flushCredentials();
window.navigate("test1.htm");
//-->
</SCRIPT>
</BODY>
</HTML>
- M? Internet Explorer trên máy tính mà b?n t?o ra ActiveX
Ki?m soát, và đi đ?n trang m?u (Test1.htm). Các th? nghi?m là thành công
N?u:
- B?n đ? đư?c tr?nh bày v?i m?t đăng nh?p vào h?p tho?i sau khi b?n đ? yêu c?u các
Trang.
- Sau khi b?n nh?p vào Nh?n vào đây đ? đăng xu?t, b?n đư?c tr?nh bày v?i m?t
h?p tho?i xác th?c không ch?a tên ngư?i dùng ho?c
m?t kh?u c?a ngư?i dùng trư?c đó xác th?c.
Làm các đi?u khi?n ActiveX có s?n cho t?t c? nh?ng ngư?i yêu c?u trang
- Thay th? các t?p l?nh có ch?a "M?i ActiveXObject" v?i m?t HTML
<object> th? có ch?a m?t th? ID thi?t b?nh đ?ng đ? obj1. <object> Th? nên
bao g?m clsid c?a Browser.ocx và m?t codebase v?i URL đ? các
Browser.ocx t?p tin.
</object></object>
- Trong Visual Basic 6.0, h?y m? d? án Browser.ocx và sau đó nh?p vào G? l?i.
Visual Basic s? m? ra m?t trang Web đư?c lưu tr? ActiveX
Ki?m soát. Xem m? ngu?n c?a trang Web. Bây gi? b?n có 90 ph?n trăm c?a các
<object> t? khóa c?n thi?t đ? t?o ra các đ?i tư?ng. Đ? k?t thúc <object> th?,
thêm m?t codebase =, và cung c?p m?t URL vào v? trí nơi b?n d? đ?nh s?
đ?t các ActiveX Control đ? phân ph?i các đi?u khi?n ActiveX.
</object></object>
- Trong Visual InterDev 6.0, m? d? án Web t?o ? bư?c 1 c?a các
ph?n trư?c, "Vi?c t?o ra các trang Web m?u." Nh?p chu?t ph?i vào các
thanh công c?, và ch?n tùy ch?nh h?p công c?. Trên các Đi?u khi?n ActiveX tab, ch?n các Browser.logoff h?p ki?m. B?n s? th?y m?t ActiveX
Đi?u khi?n ActiveX trên thanh công c? đ?t tên là "đăng xu?t." B?m vào đăng xu?t
ki?m soát, và kéo nó vào trang c?a b?n, Test1.htm. N?u b?n xem th?i gian ch?y
văn b?n, b?n s? th?y các t? khóa <object> . Thêm m?t thu?c tính ID đ? Test1.htm
v?i m?t giá tr? c?a obj1, và thêm m?t tài s?n codebase đ? nó đ? cung c?p các
đ?i tư?ng v?i m?t URL đ? t?i v? ki?m soát t?. <object> Th? nên
gi?ng như sau:
</object></object>
<OBJECT classid="clsid:7890D0A4-62F1-11D2-8D55-00C04FB9D8A6" id=obj1
codebase="http://path/browser.cab" style="LEFT: 0px; TOP: 0px"
VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="11404">
<PARAM NAME="_ExtentY" VALUE="8731"></OBJECT>
Đ? ki?m tra m? này, đi đ?n m?t máy tính khác nhau v?i Internet Explorer
cài đ?t, và yêu c?u các trang m?u, Test1.htm.
Khắc phục sự cố
Khi b?n nh?n th?y m?t thông báo l?i nói r?ng các đ?i tư?ng không h? tr? đi?u này
phương pháp ho?c b?t đ?ng s?n, đi?u này thư?ng x?y ra b?i v? các đ?i tư?ng không đư?c đánh d?u
là an toàn cho k?ch b?n. Đ? gi?i quy?t v?n đ? này, t? c?u h?nh b?o m?t trên Internet Explorer đ? nh?c cho đi?u khi?n Initialize và k?ch b?n ActiveX không đánh d?u là an toàn. Cách t?t hơn đ? x? l? này s? là bao g?m m? trong m?u mà đánh d?u s? ki?m soát như là an toàn cho k?ch b?n. Đ? bi?t thêm chi ti?t, xin vui l?ng xem các bài vi?t sau đây trong các
Cơ s? ki?n th?c Microsoft:
182598
(http://support.microsoft.com/kb/182598/EN-US/
)
Làm th? nào đ? th?c hi?n IObjectSafety trong đi?u khi?n Visual Basic
LƯU ?: B?n có th? đư?c nh?c nh? đ? kh?i đ?ng l?i máy tính c?a b?n sau khi l?n đ?u tiên ki?m soát trong t?i v?.
ID c?a bài: 195192 - L?n xem xét sau cùng: 20 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
- Microsoft Visual InterDev 6.0 Standard Edition
- Microsoft Visual Basic 6.0 Professional Edition
| kbhowto kbsecurity kbmt KB195192 KbMtvi |
Máy d?chQUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:
195192
(http://support.microsoft.com/kb/195192/en-us/
)