SafeCtl.exe th?c hi?n IObjectSafety trong đi?u khi?n ActiveX

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 164119 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

SafeCtl.exe m?u ch?ng t? làm th? nào đ? s?a đ?i m?t MFC d?a trên đi?u khi?n ActiveX đ? ch? nh?ng ngư?i xu?t b?n m? và cho dù m?t ki?m soát đ? b? gi? m?o v?i. M?u có th? giúp đ? xác đ?nh xem các ki?m soát là an toàn cho k?ch b?n và an toàn đ? kh?i đ?ng.

THÔNG TIN THÊM

Các t?p tin sau đây có s?n đ? t?i v? t? Microsoft Download Trung tâm:
SafeCtl.exe
Đ? bi?t thêm thông tin v? làm th? nào đ? t?i v? Microsoft h? tr? t?p, b?m vào đây s? bài vi?t đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
119591 Cách tải xuống các tệp hỗ trợ của Microsoft từ dịch vụ trực tuyến
Microsoft đã quét vi-rút cho tệp này. Microsoft s? d?ng nhi?u nh?t ph?n m?m phát hi?n vi rút hi?n t?i đ? có s?n trên ngày mà các t?p tin đ? đư?c đăng. Các t?p tin đư?c lưu tr? trên tăng cư?ng b?o m?t máy ch? có th? giúp ngăn ng?a m?i thay đ?i không đư?c phép đ? các t?p tin.

Trong Internet Explorer 3.0 và phiên b?n m?i nh?t, ngư?i dùng có th? thêm m? dư?i h?nh th?c đi?u khi?n ActiveX vào các trang Web c?a h?. Các <object> th? đư?c s? d?ng đ? xác đ?nh m?t đi?u khi?n. Sau khi m?t th? hi?n c?a các t?o đi?u khi?n, thu?c tính c?a nó có th? đư?c thi?t l?p thông qua vi?c ki?m soát kiên tr? giao di?n. Ví d?, cho m?i <param> t? khóa mà Internet Explorer cu?c g?p trong b?i c?nh c?a m?t t? khóa <object> trong khi phân tích m?t trang HTML, Internet Explorer đi m?t túi b?t đ?ng s?n thông qua ki?m soát tương ?ng<b00></b00></object></object>IPersistPropertyBag giao di?n. Hơn n?a, hành vi c?a m?t đi?u khi?n có th? tùy ch?nh thông qua vi?c s? d?ng các k?ch b?n nhúng trong trang đó th?c hi?n các phương pháp và s?a đ?i các thu?c tính ti?p xúc thông qua vi?c ki?m soát t? đ?ng hóa giao di?n.

V?i m? xác th?c m? k? công ngh? cho phép ngư?i dùng cu?i đ? xác đ?nh nh?ng ngư?i xu?t b?n m? và xác minh r?ng không có ai đ? gi? m?o v?i có m? k? t? khi nó đ? đư?c k? k?t. Nó không đ?m b?o r?ng m? là an toàn khi thu?c tính c?a nó đư?c kh?i t?o v?i giá tr? không đáng tin c?y ho?c khi t? đ?ng hóa c?a nó mô h?nh là lái xe c?a k?ch b?n không đáng tin c?y. Đ? tránh nh?ng m?i nguy hi?m ti?m năng b?o m?t, các m?c đ?nh đ?t Internet Explorer b?o m?t, mà có th? truy c?p thông qua các Bảo mật tab c?a tr?nh duy?t Internet Explorer Tuỳ chọnb?t đ?ng s?n t?m, đ?i h?i r?ng ki?m soát m?t đăng k? chính nó như là vi?c th?c hi?n các thích h?p thành ph?n th? lo?i ho?c ki?m soát th?c hi?n các IObjectSafety giao di?n. M?u minh ho? c? hai.

Trư?c khi nó đ?t ra các tính ch?t c?a m?t đi?u khi?n nhúng trong trang HTML, truy v?n Internet Explorer ki?m soát cho IObjectSafety. N?u đư?c h? tr?, Internet Explorer sau đó g?i là các SetInterfaceSafetyOptions phương pháp trên giao di?n này, đi qua giá tr? INTERFACESAFE_FOR_UNTRUSTED_DATA c?ng như các đ?nh danh giao di?n (IID) c?a m?t kiên tr? giao di?n. Trên các trang HTML ngày hôm nay, nơi mà tài s?n có xu hư?ng kh?i t?o thông qua các <param> th?, IID là IID_IPersistPropertyBag. Các IID đư?c cung c?p cho các t?nh hu?ng nơi b?n có th? mu?n b?o v? s? an toàn trên m?t s? giao di?n nhưng không ph?i trên nh?ng ngư?i khác, và trong ví d? này mà không ph?i là quan tr?ng. Th?c hi?n m?u ki?m tra đ? đ?m b?o r?ng các giao di?n đư?c h? tr?. N?u b? đi?u khi?n có th? làm không có thi?t h?i cho h? th?ng c?a khách hàng b?t k? c?a d? li?u mà nó có th? đư?c kh?i t?o thông qua đó giao di?n kiên tr? và r?ng kiên tr? giao di?n đư?c h? tr?, th?c hi?n s? ki?m soát c?a các IObjectSafety::SetInterfaceSafetyOptions phương pháp nên tr? v? S_OK. N?u không, E_FAIL nên đư?c tr? l?i.

Trư?c khi cho phép b?t k? k?ch b?n đư?c nhúng trong trang đ? ch?y, Internet Explorer tương t? như các cu?c g?i thông qua vi?c ki?m soát IObjectSafety:: SetInterfaceSafetyOptions phương pháp nhưng thay vào đó đi giá tr? INTERFACESAFE_FOR_UNTRUSTED_CALLER và IID m?t s? giao di?n k?ch b?n, mà thư?ng là IID_IDispatch. S? ki?m soát nên tr? v? S_OK ho?c E_FAIL m?t cách thích h?p.

N?u b? đi?u khi?n không h? tr? IObjectSafetyInternet Explorer s? d?ng h?p ph?n qu?n l? th? lo?i đ? xem N?u b? đi?u khi?n th?c hi?n các lo?i "an toàn đ? kh?i đ?ng", CATID_SafeForInitializing, và các lo?i "an toàn cho k?ch b?n", CATID_SafeForScripting, tương ?ng.

N?u b? đi?u khi?n không h? tr? IObjectSafety và đ? không đăng k? chính nó như là vi?c th?c hi?n các thích h?p th? lo?i thành ph?n, và n?u m?c đ? an toàn c?a Internet Explorer đư?c đ?t thành cao, m?c đ?nh, Internet Explorer s? không th? kh?i t?o thu?c tính c?a đi?u khi?n, và c?ng không nó s? th?c hi?n b?t c? k?ch b?n đư?c nhúng trong trang. Trong này k?ch b?n, ngư?i dùng nh?n đư?c m?t h?p tho?i có ch?a văn b?n sau đây:
Ti?m năng vi ph?m an toàn tránh
Trang này ch?a n?i dung hi?n ho?t mà không ph?i là verifiably an toàn đ? hi?n th?. Đ? b?o v? c?a b?n máy tính, n?i dung này s? không đư?c hi?n th?.
Border|ph?i|200px Đây là danh sách nguyên t?c đư?c l?y t? Paul Johns' bài vi?t, "đánh k? và d?u Đi?u khi?n ActiveX: "
  • B? đi?u khi?n không thao tác h? th?ng t?p tin.
  • B? đi?u khi?n không thao tác registry (ngo?i tr? đ? đăng k? và đ? unregister chính nó).
  • B? đi?u khi?n không overindex m?ng ho?c b?ng cách khác thao tác b? nh? không chính xác.
  • B? đi?u khi?n xác nh?n (và s?a ch?a) t?t c? đ?u vào, bao g?m c? kh?i t?o, tham s? phương pháp và b?t đ?ng s?n đ?t ch?c năng.
  • B? đi?u khi?n không l?m d?ng b?t k? d? li?u nào đư?c cung c?p b?i ngư?i s? d?ng ho?c đó là v? ngư?i dùng đó.
  • S? ki?m soát đ? đư?c th? nghi?m trong m?t lo?t các k?ch b?n.
Đ? bi?t thêm chi ti?t, h?y truy c?p trang Web Microsoft sau đây Trang web:
Vi?c đăng k? và Đi?u khi?n ActiveX đánh d?u
http://msdn2.Microsoft.com/en-us/Library/ms974305.aspx
N?u m?t tác gi? đi?u khi?n đ? xác minh r?ng các tiêu chí ? trên đ? g?p thêm vào b?t k? ngư?i khác mà h? có th? ngh? đ?n, h? nên xem xét h? tr? c? hai IObjectSafety và đăng k? ki?m soát c?a h? như là tri?n khai th?c hi?n các thích h?p th? lo?i thành ph?n. Đ?i v?i m?t danh sách các l?i th? và b?t l?i c?a m?i nh?ng phương pháp này, xem l?i các ph?n tương ?ng trong bài vi?t Paul Johns', "K? k?t và đi?u khi?n ActiveX đánh d?u."

Biên d?ch

Xây d?ng m?u yêu c?u Microsoft Visual C++ 5.0 ho?c Microsoft Visual C++ 6.0. Sau khi b?n gi?i nén các t?p t? lưu tr?, t?i các Safectl.mdp d? án vào Microsoft Developer Studio, và xây d?ng các d? án. Như m?t ph?n c?a quá tr?nh xây d?ng, s? ki?m soát nên đăng k? chính nó.

C?nh báo Trư?c khi b?n s?a đ?i m?u b?ng cách s? d?ng hai preprocessor các bi?u tư?ng đư?c li?t kê sau này trong ph?n này, b?n ph?i unregister các ki?m soát n?u có đ? đư?c ch? t?o ho?c đăng k? trên máy tính. Đ? làm đi?u này, ch?y regsvr32.exe Regsvr32.exe v?i các /u chuy?n cho ki?m soát c?a b?n. B?n c?ng có th? thêm m?t m?c nh?p công c? tùy ch?nh trong Ph?ng thu nhà phát tri?n s? th?c hi?n vi?c này cho d? án hi?n t?i. Trên các Công cụ tr?nh đơn, nh?p vào Tùy ch?nh, và sau đó nh?p vào các Công cụ tab. t?o m?t m?c nh?p m?i v?i sau thông tin:
                Name: &Un-register ActiveX Control
             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE
           Arguments: /u /v "$(TargetPath)"
   Initial Directory: $(TargetDir)
				
T?i th?i đi?m này, b?n có th? s? d?ng "công c?/Un-đăng k? ActiveX Ki?m soát"m?c nh?p đ? unregister ki?m soát c?a b?n trư?c khi b?n thêm ho?c lo?i b? các đ?nh ngh?a preprocessor m?u c? th?.

Đ? xây d?ng s? ki?m soát n?i nó đăng k? chính nó như là th?c hi?n các "an toàn cho kh?i t?o" và "an toàn cho"th? lo?i thành ph?n, h?y làm theo các bư?c sau:
  1. Trên các Dự án tr?nh đơn, nh?p vàoThiết đặt.
  2. B?m vào các C ++ tab, và sau đó xác đ?nh các sau preprocessor đ?nh ngh?a:
    L_USE_COMCAT
  3. Nh?p vào Ok đ? đóng nh?ngThiết đặt h?p tho?i h?p, và sau đó xây d?ng l?i s? ki?m soát.
Đ? xây d?ng s? ki?m soát đ? cho nó thay v? th?c hi?n IObjectSafety, h?y làm theo các bư?c trư?c đó, nhưng thay th? L_USE_COMCAT v?i L_IMPL_OBJECTSAFETY.

Nó c?ng là h?p l? đ? xác đ?nh c? hai preprocessor các bi?u tư?ng. Quan sát r?ng các bi?u tư?ng này là c? th? cho d? án này. Theo m?c đ?nh, thi?t đ?t xây d?ng d? án xác đ?nh c? hai bi?u tư?ng preprocessor.

Đ? ch?y

Sau khi m?u ki?m soát đ? đư?c xây d?ng và đ? đư?c đăng k? thành công, kh?i đ?ng Internet Explorer, và sau đó m? trang Safectl.htm, đó là bao g?m trong m?u.

N?u s? ki?m soát đ? đư?c c?u h?nh đ? đăng k? chính nó là an toàn ho?c th?c hi?n IObjectSafety, các chú thích đi?u khi?n nên đ?c "An toàn cho kh?i t?o!" Khi b?n b?m vào đi?u khi?n, b?n s? nh?n đư?c thông báo sau:
Tôi ph?i đư?c an toàn cho k?ch b?n!
N?u Internet Thám hi?m đư?c thi?t l?p đ? thi?t l?p an toàn cao nh?t c?a nó, các t?p l?nh liên k?t nào không ch?y, và b?n nh?n đư?c thông báo sau:
KHÔNG an toàn cho kh?i t?o!


Chú ý N?u b?n đang xây d?ng và ki?m tra c?u h?nh khác nhau c?a đi?u này m?u, h?y ch?c ch?n r?ng b?n làm m?i trang Web trong tr?nh duy?t. N?u b?n không làm m?i trang, b?n có th? s? d?ng phiên b?n cache c?a ki?m soát thay v? xây d?ng m?i nh?t.

THAM KH?O

Đ? bi?t thêm chi ti?t v? an toàn API, xem s? an toàn API tài li?u tham kh?o trong tài li?u hư?ng d?n tr?c tuy?n ActiveX SDK.

Đ? bi?t thêm thông tin v? m? k?, xem "v?i m? xác k? h?p đ?ng v?i Microsoft th?c Công ngh?"trong tài li?u hư?ng d?n tr?c tuy?n ActiveX SDK.

Đ? bi?t thêm thông tin v? th? lo?i thành ph?n, xem ch? đ? "Thành ph?n th? lo?i" trong ActiveX SDK tài li?u tr?c tuy?n.

Đ? bi?t thêm thông tin v? làm th? nào đ? th?c hi?n m?t mô h?nh đ?i tư?ng thành ph?n (COM) giao di?n trong MFC, nh?p vào s? bài vi?t sau đây đ? xem các bài vi?t trong các Cơ s? ki?n th?c Microsoft:
141277Làm th? nào đ? ghi đè lên m?t giao di?n ?ng d?ng MFC b?ng cách s? d?ng Visual C++
Đ?i v?i thông tin chi ti?t v? làm th? nào đ? phát tri?n m?t Đi?u khi?n ActiveX và làm th? nào đ? tri?n khai trên Web, truy c?p vào Microsoft sau Web site:
ABCs MFC ActiveX Controls
http://MSDN.Microsoft.com/en-us/Library/ms968497.aspx

Thu?c tính

ID c?a bài: 164119 - L?n xem xét sau cùng: 22 Tháng Chín 2011 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
T? khóa: 
kbdownload kbfile kbinfo kbsample kbmt KB164119 KbMtvi
Máy d?ch
QUAN 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:164119

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com