intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Silverlight - Chapter 8 - Giao tiếp mạng trong Silverlight

Chia sẻ: Võ Quang Hòa | Ngày: | Loại File: PDF | Số trang:0

97
lượt xem
27
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Silverlight cung cấp nhiều tính năng tương tự như Flash. Nhưng hỗ trợ các ngôn ngữ được phát triển trong môi trường .NET như Ajax, C#, VB.NET… Vì vậy các lập trình viên có thể viết mã client-side cho silverlight cùng một ngôn ngữ như khi họ viết trong server-side.

Chủ đề:
Lưu

Nội dung Text: Silverlight - Chapter 8 - Giao tiếp mạng trong Silverlight

  1. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT 1 Giao ti p HTTP và b o m t trong Silverlight Silverlight cho phép HTTP / HTTPS giao ti p v i các d ch v lưu tr trên máy ch web v i c hai trư ng h p bên trong và bên ngoài tên mi n c a b n đư c lưu tr trên cơ s ng d ng Silverlight. Ch đ này th o lu n v m t s k ch b n HTTP giao ti p và làm th nào đ b n có th kích ho t các k ch b n. 1.1 M c đ nh h tr giao th c HTTP Có m t s kh năng cơ b n cho t t c nh ng ki u giao ti p HTTP/HTTPS c a Silverlight Trong cùng tên mi n thì m i tri u g i luôn đư c ch p nh n • Khi các Web service đư c thi p l p đúng trên máy ch lưu tr thì vi c truy c p • t tên mi n khác t i là đư c h tr . T t c các giao ti p là không đ ng b • Ch h tr phương th c GET và POST • H u h t các tri u g i tiêu chu n và các tùy ch nh Header đã đư c h tr . • (Header ph i đư c cho phép trong file cross-domain policy cho các tri u g i t i t domain khác.) Ch có mã tr ng thái 200-“OK” và 400-“Không tìm th y” • 1.2 K ch b n giao ti p HTTP Silverlight h tr m t s k ch b n có s d ng giao th c HTTP / HTTPS. M c dù có nhi u cách th c và công ngh có th đư c s d ng đ th c hi n các tri u g i giao th c HTTP, b ng sau mô t phương pháp ti p c n đ i v i m t s tình hu ng giao ti p có th x y ra. Nh ng phương pháp ti p c n s đư c th o lu n chi ti t hơn sau này trong tài li u này K ch b n Phương pháp ti p c n nên dùng Download và S d ng l p WebClient đ thao tác Upload tài nguyên trong cùng m t domain Tri u g i Web S d ng l p WebClient ho c nh ng l p service trên giao HttpWebRequest/HttpWebResponse đ thao tác
  2. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions th c HTTP trong cùng m t domain Tri u g i SOAP, Tri u g i thông qua proxy cho Web service. N u b n WCF, ho c không mu n x d ng proxy thì s d ng các l p ASP.NET AJAX Web services đư c lưu tr trong cùng m t domain. G i Web service Ch c ch n là file cross-domain policy n m thư m c g c c a domain(m c đ nh là wwwroot). S d ng proxy, l p trên tên mi n khác. WebClient ho c các l p HttpWebRequest/HttpWebResponse. Thi t l p header - Đ m b o là header cho phép thông qua t p tin cross- cho tri u g i cross- domain policy domain - Đ i v i các yêu c u trên các d li u upload, s d ng l p WebClient. Thi t l p các t p h p các header mu n có. - Đ i v i các k ch b n s d ng l p HttpWebRequest. Thi t l p thu c tính c a nó v i t p h p nh ng header mong mu n. 1.3 Giao ti p trong cùng m t domain M c đ nh Silverlight h tr tri u goi t i Web service trong cùng m t domain. Trong cùng domain có t c là nh ng tri u g i ph i trong cùng m t sub domain, giao th c, và c ng. Đi u này là vì lý do b o m t, đ ngăn ch n s truy c p trái phép t i Web service. Minh ho v tri u g i Web service sau đây v s cho phép và không cho phép s truy c p c a ng d ng Silverlight khi s d ng nh ng thi t l p m c đ nh:
  3. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions 1.4 Giao ti p Cross-domain B n có th cho phép ng d ng Silverlight domain khác tri u g i Web service c a b n thông qua vi c thi t l p chính xác t p tin cross-domain policy đ t t i g c c a domain (m c đ nh là thư m c wwwroot).Silverlight h tr 2 lo i c a t p tin cross-domain policy; Silverlight Cross-Domain Policy (clientaccesspolicy.xml) - M t nhóm c a Flash Cross-Domain Policy(crossdomain.xml) - Ví d sau đây minh ho v giao ti p cross-domain thông qua vi c s d ng t p tin Cross-Domain Policy. Nói chung, khi m t ng d ng Silverlight phát hi n r ng tri u g i c a nó là cross-domain, trư c tiên nó s tìm t p tin Silverlight Cross-Domain (clientaccesspolicy.xml) t i v trí g c c a Web service. N u tri u g i này tr v mã l i 404-Không tìm th y ho c các l i khác, ng d ng sau đó s tìm t p tin Flash Cross-Domain (crossdomain.xml) t i v trí g c domain.
  4. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions B ng sau li t kê các tri u g i và URIs nơi Silverlight d a trên ng d ng s tìm t p tin cross-domain Request URI Cross-Domain Policy File Location http://contoso.com/services/data http://contoso.com/clientaccesspolicy.xml http://sales.contoso.com/services/data http://sales.contoso.com/clientaccesspolicy.xml http://contoso.com:8080/services/data http://contoso.com:8080/clientaccesspolicy.com Không th dùng GET request bao g m header khi s d ng cross-domain. Ch s d ng đư c request header v i POST request khi nó đư c ch ra t p tin cross-domain policy. Lưu ý b o m t Web service đư c dùng cho Silverlight v i tri u g i cross-domain • nghiên c u k lư ng v b o m t trư c khi b n cho phép các k t n i t Silverlight truy c p vào Web service s d ng t p tin cross-domain. B t c khi nào b n đ t t p tin cross-domain policy nơi mà b n c u hình máy ch lưu tr web service thì nên thi t l p vô hi u hoá b nh đ m c a trình duy t. Đi u này cho phép b n d dàng c p nh t các t p tin ho c h n ch quy n truy c p vào các Web service c a b n n u c n thi t. Ngoài ra, t t c các request c a Silverlight đư c g i v i các t p tin cookie và xác th c. Đi u này có nghĩa là n u b n có Web service cho phép ngư i s d ng truy c p thông tin cá nhân, b n nên lưu tr nó v i tên mi n khác nhau hơn là trên Web service ti p xúc v i bên th ba. Ví d , b n có m t kho lưu tr trên máy ch web t i http://contoso.com. Trang web c a b n cho phép khách hàng lưu tr thông tin thanh toán bao g m s th tín d ng. B n không nên làm m t Web service đ tr l i s n ph m t n kho c a bên khách hàng th ba s d ng Silverlight t i cùng m t tên mi n. B i vì các t p tin cookie và xác th c đư c g i đi v i m i request, n u b n lưu tr các Web service trên cùng m t tên mi n, thì các bên th ba s d ng d ch v c a b n có th truy c p vào d li u thanh toán cá nhân c a khách hang c a b n. Trong ví d này, công khai giao ti p c a Web service c a b n có th đư c lưu tr trên máy ch an toàn t i http://services.contoso.com, b i vì đây là m t tên mi n khác. B n ph i c n th n xem xét nh ng đ i tư ng ti p xúc v i Web service, và nh ng Web service khác đang n m t i domain đó. Ngoài ra, b n nên luôn luôn gi t p tin cross-domain policy càng h n ch càng t t. Ví d v t p tin Cross-Domain Policy • T p tin cross-domain policy c a Silverlight là m t t p tin XML có đ nh d ng đơn gi n. Ví d dư i đây ch ra t p tin cross-domain policy c a Silverlight cho phép requests t i Web service liên k t t i đư ng d n “services” c a domain. T p tin cross-domain policy cũng ch ra lo i n i dung header là SOAPAction.
  5. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions • T p tin Flash Cross-Domain Policy Silverlight h tr Flash Cross-Domain (crossdomain.xml). Silverlight h tr th v i các thu c tính sau: + domain v i thu c tính giá tr "*", có nghĩa là t t c các domain đ u có th tri u g i. + secure ch p nh n giá tr là true ho c false là s d ng tương ng HTTPS hay HTTP. + headers nh n các giá tr header. Sau đây là ví d c a m t t p tin Flash crossdomain.xml v i Silverlight. 1.5 Thi t l p tri u g i HTTP Tùy thu c vào k ch b n, b n có th th c hi n các cu c g i HTTP s d ng l p clien- side proxy ho c xây d ng tri u g i c a chính b n. Dư i đây là nh ng ph n mô t các phương pháp khác nhau đ th c hi n các cu c g i trên m ng b ng cách s d ng HTTP S d ng l p Proxy • B n có th t o ra m t l p proxy t Web service metadata và s d ng proxy đ k t n i t i Web service t ng d ng Silverlight c a b n. Silverlight s d ng Windows Communication Foundation(WCF) đ t o ra proxy và g i message SOAP 1.1 thông qua giao th c HTTP. N u b n s d ng Visual Studio, b n chu t ph i vào d án Silverlight và ch n Add Service Reference s t đ ng t o proxy cho b n. Proxy s t o message và x lý giao ti p m ng cho b n.
  6. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions T o request HTTP • + N u b n mu n t o tri u g i HTTP c a b n, b n có th s d ng nh ng l p đư c cung c p trong namespace System.Net + W ebClient + HttpWebRequest và HttpWebResponse Nh ng l p này cho phép b n t o request GET ho c POST và cho phép request header trong m t vài trư ng h p. Thêm n a, b n có th thi t l p nh ng l p này đ tăng cư ng download v i GET request L p WebClient • L p WebClient cung c p s ki n đơn gi n, d a trên mô hình cho phép b n t i xu ng và t i lên su i và strings. Các WebClient là m t l a ch n t t n u b n không mu n s d ng m t proxy l p h c. Nói chung, l p này là d s d ng, nhưng cung c p ít hơn các tùy ch n đ tùy ch nh các message đư c g i qua m ng. B ng sau đây tóm t t các header h tr cho các l p WebClient. Giao th c G i trong cùng G i Cross-Domain HTTP domain GET Header luôn đư c Request header không đư c ch p nh n ch p nh n POST Request headers ch p nh n Header luôn đư c thông qua t p tin cross-domain ch p nh n policy. Đ t o POST request v i WebClient và t i lên t p tin b t kỳ ho c nh ng chu i, b n s d ng m t trong nh ng phương th c sau đây. + W ebClient..::.OpenWriteAsync + W ebClient..::.UploadStringAsync B n có th xét header cho POST request thông qua thu c tính WebClient..::.Headers . Request header ph i đư c cho phép trong t p tin cross- domain policy. Đo n mã ví d dư i đây t o POST request s d ng WebClient // T o m t instance c a WebClient. WebClient client = new W ebClient(); public Page() {
  7. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions InitializeComponent(); // Đăng ký hóng s ki n UploadStringCompleted. client.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted); } private void Button_Click(object sender, RoutedEventArgs e) { // T o request. string postRequest = "" + "New Restaurant" + "" + " " + " There is a new Thai restaurant in town!" + " I ate there last night and it was fabulous." + " Make sure and check it out!" + " " + " " + " " + " Pilar Ackerman" + " packerman@contoso.com" + " " + ""; // G i request t i URL c th . client.UploadStringAsync(new Uri("http://blogs.contoso.com/post- create?blogID=1234", UriKind.Absolute), postRequest); } // Hóng s ki n UploadStringCompleted. void client_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) { // Hi n th ra k t qu nh n đư c. if (e.Error != null) tb1.Text = e.Error.Message; else tb1.Text = e.Result; } 1.6
  8. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions 2 Các h n ch trong truy c p m ng v i silverlight Phiên b n Silverlight 2 h tr hai ki u chính sau đ ng d ng k t n i t i máy ch t xa: L p W ebClient và nh ng l p HTTP có trong namespace System.Net – nh ng • l p này s d ng giao th c HTTP or HTTPS cho giao ti p m ng. Nh ng l p Sockets trong namespace System.Net.Sockets – nh ng l p này cung • c p interface m c đ th p c a các socket nó có th đư c s d ng r ng m t cách r ng rãi trong giao ti p m ng. c hai trư ng h p trên, c n ph i cung c p b o m t và ngăn ch n ng d ng Silverlight k t n i t i t các k t n i không đư c phép. Nh ng m i đe do t n công t m ng bao g m: T n công t tr i d ch v (DoS) – M t s lư ng l n các máy t xa đư c s d ng • nh m m c tiêu t n công vào m t trang web đ m c tiêu là không th request d ch v h p l . T n công thay đ i thông tin DNS – S d ng DNS đ qu n lý máy ch và c p • nh t l i tên máy ch t i đ a ch IP c a n n nhân, b i v y cho phép truy c p s vào máy ch khác hơn là vào máy ch th c s c a website đó. Reverse tunnel attack – Use a remote client’s outgoing connection as a back • tunnel to the client’s private network. Các chính sách b o m t h th ng k t h p trong Silverlight đư c thi t k đ ngăn ch n các m i đe d a m ng. Ngoài ra, h th ng chính sách cũng nh m m c đích cung c p cho các qu n tr viên ki m soát nhi u hơn các ngu n l c t xa mà khách hàng đư c phép đ k t n i đ n. Trư c đây thi t k cho các m ng có kh năng b sung gi i h n k t n i đ n máy ch c a trang web ho c web g c. Đi u này có nghĩa là trang web đó, m t ng d ng có th ch giao ti p l i cho tri n khai các máy ch , do đó, m ng lư i các ng d ng đư c phép đ k t n i đ n máy ch mà t đó chúng đã đư c t i v . Silverlight 2 bao h tr k t n i cross-domain cho phép m t ng d ng đ truy c p vào các tài nguyên t các đ a đi m khác(sub domaint, ) hơn là v i trang web g c. Đây là m t tính năng quan tr ng đ t o đi u ki n cho các ng d ng Silverlight s d ng các d ch v hi n có trên web. Các chính sách an ninh h th ng trong Silverlight 2 runtime bây gi , đòi h i m t t p tin cross-domain policy đư c t i v trư c khi s k t n i đư c phép truy c p vào tài nguyên đó. Đi u này nh hư ng đ n chính sách b o m t c a h th ng domain qua m ng truy c p cho WebClient HTTP và các l p trong namespace System.Net. Đ i v i các sockets, các chính sách an ninh h th ng trong Silverlight 2 nh hư ng đ n quy n truy c p c a c trang web g c và cross-domain. Chính sách b o m t là b t bu c cho b t kỳ k t n i ki u socket, th m chí c khi k t n i l i t i chính trang web đó. Đi u
  9. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions này khác nhau t các hành vi ng x trong Silverlight 2 Beta 1, nơi socket đư c cho phép k t n i đã đư c cho phép t site g c. Các n i dung trong ph n này cung c p thông tin chi ti t v vi c làm th nào đ s d ng trong h th ng chính sách b o m t Silverlight 2 và mô t chính sách t p tin đ nh d ng đư c h tr . 2.1 Khái ni m cơ b n v chính sách b o m t h th ng Silverlight h tr hai lo i t p tin quy đ nh cách ng s b o m t: T p tin chính sách c a Adobe Flash - crossdomain.xml. T p tin chính sách này ch có th đư c s d ng b i WebClient và các l p HTTP trong namespace System.Net. Qua t p tin chính sách Flash, cho phép truy c p vào t t c các tên mi n s đư c s d ng b i các Silverlight 2. T p tin chính sách c a Silverlight – clientaccesspolicy.xml. T p tin có th đư c s d ng b i l p WebClient và các l p HTTP trong namespace System.Net và cũng có th cho các l p sockets trong namespace System.Net.Sockets. T p tin chính sách này đ nh d ng khác v i t p tin chính sách c a Flash. Trư c khi cho phép k t n i v i tài nguyên m ng, Silverlight 2 s c g ng t i v t p tin chính sách b o m t t tài nguyên m ng đó. Có hai phương pháp khác nhau đư c s d ng đ t i v các chính sách b o m t mà ph thu c vào vi c k t n i đã đư c request t m t WebClient ho c HTTP ho c các l p đư c request k t n i t các sockets. N u đã đư c yêu c u k t n i t WebClient ho c các l p HTTP t i cross-domain site, Silverlight 2 c g ng t i v các t p tin chính sách b o m t b ng cách s d ng giao th c HTTP. Silverlight 2 đ u tiên c g ng t i v t p tin chính sách Silverlight v i tên "clientaccesspolicy.xml" g c c a site m c tiêu b ng cách s d ng giao th c HTTP. N u t p tin chính sách c a Silverlight tr l i (th m chí n u có l i trong phân tích cú pháp t p tin), nó đư c s d ng như là chính sách cho các t p tin mà request cross-domain và t t c các request t i máy ch cho nh ng phiên làm vi c c a các ng d ng Silverlight. N u t p tin chính sách Silverlight không đư c tìm th y, Silverlight 2 sau đó s c g ng t i v m t t p tin chính sách Flash có tên "crossdomain.xml" g c c a site m c tiêu đư c yêu c u b ng cách s d ng giao th c HTTP. Các chính sách t p tin Flash ph i cho phép k t n i đ n t t c các tên mi n cho nó s đư c s d ng b i các Silverlight WebClient và các l p HTTP.
  10. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions N u đư c yêu c u k t n i t các sockets cho trang web (cross-domain site ho c site g c), Silverlight 2 c g ng đ m m t k t n i TCP vào c ng 943 trên trang web m c tiêu. N u k t n i TCP có th đư c thi t l p, Silverlight 2 g i chu i đ c bi t đ n server đ yêu c u t p tin chính sách Silverlight. Silverlight 2 đ i đ sau đó nh n đư c tr l i t web m c tiêu có ch a t p tin chính sách Silverlight. N u t p tin chính sách Silverlight này đư c tr l i (th m chí n u có m t l i trong phân tích cú pháp t p tin), nó đư c s d ng như là t p tin chính sách cho các request socket và t t c các request cho trang web m c tiêu t t c các session c a ng d ng Silverlight. N u t p tin chính sách t i v là thành công và phân tích cú pháp cho phép, cu i cùng là m m t k t n i đ n các host m c tiêu. N u t p tin chính sách t i v là không h p l và không th phân tích cú pháp m t cách chính xác, sau đó k t n i t i tài nguyên m ng c a Silverlight 2 s b t ch i và các yêu c u k t n i s không thành công. N u không có chính sách t p tin đư c tìm th y, sau đó k t n i vào m ng nguyên là b t ch i c a Silverlight 2 và các yêu c u k t n i s không thành công. B sung m t trong nh ng h n ch b ng cách s d ng các l p sockets là ng d ng m ng cho phép k t n i ch v i nh ng c ng trong ph m vi 4502-4534. ng d ng Silverlight ch đư c phép k t n i t i nh ng c ng như v y khi s d ng socket. N u các c ng mà b n truy c p không ph i trong ph m vi c ng này, các c g ng k t n i s th t b i. Đ tri n khai t p tin chính sách b o m t s d ng các k t n i t WebClient và các l p HTTP, qu n tr viên h th ng c n ph i c u hình Web service cho m i đ a ch IP mà là cung c p cho các t p tin đ nh nghĩa chính sách và t o nh ng t p tin chính sách b o m t c a Flash và Silverlight đ có th tìm th y qua giao th c HTTP. Đ tri n khai t p tin chính sách b o m t trên máy cho socket, qu n tr viên h th ng c n ph i c u hình m t d ch v xác th c riêng bi t trên c ng 943 cho m i đ a ch IP đó là cung c p đ nh nghĩa các t p tin chính sách. 3 Truy c p web service trong silverlight ng d ng máy khách Silverlight 2 ch y trên trình duy t và thư ng c n ph i k t n i t i nhi u ngu n cơ s d li u ngoài khác nhau. M t ví d đi n hình là vi c truy c p d li u vào cơ s d li u t m t máy ch và hi n th nó lên giao di n ngư i dùng Silverlight. K ch b n ph bi n khác là c p nh t d li u trên service thông qua ng d ng Silverlight đ truy n t i thông tin t i service đó. Nh ng ngu n d li u ngoài thư ng đư c l y v t Web service. Nh ng service này có th là SOAP service đư c t o s d ng Windows
  11. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions Communication Foundation(WCF) ho c m t vài n n t ng SOAP khác ho c ch đơn gi n là HTTP ho c Service tĩnh. ng d ng Silverlight máy khách có th truy c p nh ng Web service tr c ti p ho c s d ng proxy đư c sinh ra t metadata đư c published b i service.Silverlight cung c p các tính năng c n thi t đ làm vi c v i m t lo t các đ nh d ng d li u đư c s d ng b i các Service. Bao g m các đ nh d ng XML, JSON, RSS, và Atom. Nh ng đ nh d ng d li u đó đư c truy c p s d ng Serialization components, Linq to XML, Linq to JSON, và Syndication components. 3.1 B o m t cho truy c p Service B ov ng d ng máy khách Silverlight và d li u ngư i dùng • Đ b ov ng d ng silverlight kh i nh ng service đ c h i, b n ph i bi t v m t s v n đ b o m t dư i đây: + Service có th g i v nh ng thông tin mà làm cho ng d ng máy khách Silverlight và có th là trình duy t c a ngư i d ng b treo ho c l i. Đi u này là có th v i b t kỳ d li u nào có đ nh d ng XML, JSON, RSS, Atom và SOAP. Đ tránh vi c đó c n th c hi n như sau: + Tránh kh i t o giao ti p t i service không tin tư ng khi mà b l i ho c treo s gây ra m t d li u c a ng d ng c a ngư i dùng. Ví d , lưu l i công vi c c a ngư i dùng xu ng máy trư c khi kh i t o giao ti p. + Tránh t đ ng kh i t o t i service không tin tư ng, mà không cho phép ngư i dùng l a ch n. Đi u này có th d n t i ng d ng c a b n không th dùng đư c. Hãy ghi nh r ng m t d ch v đ c h i có th không luôn tr v d li u đ c h i. B o v Service • Hãy ghi nh r ng service mà b n publish cho các ng d ng máy khách Silverlight có th đư c truy c p c a b t kỳ ngư i nào và đư c s d ng trong v i nh ng cách mà b n có th không mong đ i. Xem xét vi c phòng ng a sau đây: + Không nên đưa ra d li u th a v i m c đích s d ng. + Ch c ch n s d ng xác th c ngư i dùng thích h p v m t công ngh 3.2 T o m t Service vư t qua ph m vi domain Đ cho phép Silverlight qu n lý quy n truy c p vào service c a domain khác, thì service ph i tuỳ ch nh và ch ra rõ ràng cross-domain nào đư c phép truy c p. B ng vi c tuỳ ch nh, Silverlight control có th truy c p t i service m t cách th t an toàn, mà không gây nh hư ng x u đ n d li u mà lưu tr b i service.
  12. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions Silverlight 2 h tr hai cơ ch khác nhau cho service đ tuỳ ch nh quy n truy c p cross- domain: Đ t t p tin clientaccesspolicy.xml g c c a domain nơi mà service đư c lưu tr đ - thi t l p quy n truy c p c a cross-domain t i service. Đ t t p tin crossdomain.xml h p l g c c a domain nơi service đư c lưu tr . T p - tin ph i đư c đánh d u là public cho toàn domain S d ng t p tin clientaccesspolicy.xml đ cho phép truy c p cross-domain • T o service cho phép máy khách Silverlight truy c p 1. T o t p tin clientaccesspolicy.xml, cho phép truy c p vào các service. Thi t l p 2. dư i đây cho phép truy c p t b t kỳ domain nào t i ngu n tài nguyên c a domain. Lưu t p tin clientaccesspolicy.xml t i g c c a domain nơi service đư c lưu tr . 3. Cho ví d này, n u service đư c lưu tr t i http://fabrikam.com thì t p tin ph i đ t t i http://fabrikam.com/clientaccesspolicy.xml. S d ng t p tin crossdomain.xml đ cho phép truy c p cross-domain • 1. T o service cho phép Silverlight client truy c p 2. T o t p tin crossdomain.xml có nh ng thi t l p dư i đây. T p tin ph i đư c c u hình đ cho phép truy c p vào service t b t kỳ tên mi n khác, ho c nó không đư c nh n ra b i Silverlight 2
  13. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions 3. Lưu t p tin crossdomain.xml vào g c c a domain là nơi mà các service đư c lưu tr trên máy ch . Ví d , n u service đư c lưu tr trên máy ch http://fabrikam.com thì tp tin ph i đư c đt ti http://fabrikam.com/crossdomain.xml 4 Làm vi c v i socket Namespace System.Net.Sockets đư c thêm vào trong phiên b n Silverlight 2 cung c p qu n lý vi c tri n khai th c hi n c a socket giao ti p m ng cho nh ng ngư i l p trình viên mà c n ph i ki m soát ch t ch quy n truy c p vào m ng. Trên Windows, System.Net.Sockets cung c p m t tên qu n lý vi c tri n khai th c hi n c a Windows sockets (Winsock). V i Apple trên h đi u hành Mac OS X, các namespace System.Net.Sockets cung c p, qu n lý vi c tri n khai th c hi n c a các sockets d a trên Berkeley Software Distribution (BSD) UNIX. Namespace System.Net.Sockets cung c p m t cơ ch cho th i gian th c, hai giao ti p v i m ng lư i các tài nguyên t xa và cho phép m c đ cao hơn các API đ giao ti p qua m t bi-directional. Đi u này cũng cho phép m t ng d ng đ n i tác như là m t client hi n t i v i các service TCP. 4.1 H tr giao th c m ng Namespace System.Net.Sockets h tr vi c s d ng các giao th c IPv4 hay IPv6 ch c n m ng trên máy tính đã kích ho t h tr cho IPv4 và IPv6. Các l p đư c thêm vào trong namespace System.Net Silverlight 2 đ làm vi c v i System.Net.Sockets. Nh ng l p m i bao g m sau đây: + EndPoint - xác đ nh m t đ a ch m ng. Đây là m t l p tr u tư ng. + DnsEndPoint - đ i di n cho m t m ng lư i endpoint như là m t tên máy ch ho c m t chu i ký t đ i di n c a m t đ a ch IP và m t s c ng. + Ipaddress - Cung c p đ a ch giao th c m ng (IP). + IPEndPoint - đ i di n cho m t m ng lư i endpoint như là m t đ a ch IP và m t s c ng. + SocketAddress – Lưu tr thông tin đư c s p x p và k th a t l p EndPoint. L p Socket cung c p m t t p h p các phương th c cho giao ti p m ng. L p Socket cho phép b n th c thi b t đ ng b vi c truy n t i d li u s d ng b t c giao th c giao
  14. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions ti p nào đư c li t kê ki u ProtocolType. Hi n t i, trong Silverlight 2 ch h tr lo i giao th c TCP. M t trong nh ng h n ch v vi c s d ng các sockets trong Silverlight 2 là các c ng ph i trong ph m vi 4502-4534. Ch nh ng c ng này cho phép k t n i b ng cách s d ng sockets trong ng d ng Silverlight 2. N u m t k t n i đ n m t c ng không ph i là trong ph m vi c ng này, vi c k t n i s không thành công 4.2 L p trình m ng cơ b n v i Socket L p Socket cho phép b n th c thi b t đ ng b truy n t i d li u s d ng nh ng phương th c sau đây: + ConnectAsync - B t đ u Asynchronous request t i máy ch . + SendAsync - Ghi d li u t m t hay nhi u buffers t i Socket đã k t n i . + ReceiveAsync - Đ c d li u vào m t ho c nhi u buffers t Socket đã k t n i. + Shutdown - K t thúc m i thao tác g i đang ch , và các tín hi u endpoint r ng các k t n i có th đã b đóng l i. N u vi c g i đư c xác đ nh, d li u có th v n đang nh n đư c cho đ n khi máy ch k t thúc k t n i c a nó (ch nh n đư c 0 byte). + Close - Là đóng k t n i máy ch và lưu tr t t c các tài nguyên qu n lý và không qu n lý có liên quan t i Socket. Trong l p Socket, ho t đ ng asynchronous c a Socket đư c mô t b i kh năng dùng l i System.Net.Sockets.SocketAsyncEventArgs phân b và duy trì các đ i tư ng c a ng d ng. Các ng d ng có th t o bao nhiêu SocketAsyncEventArgs c a các đ i tư ng mà nó c n. Ví d , n u m t ng d ng Silverlight c n ph i có 10 Socket cho các thao tác cùng m t lúc, nó có th phân b 10 SocketAsyncEventArgs cho các đ i tư ng trong trư ng h p này. Vòng đ i c a SocketAsyncEventArgs đư c s d ng trong asynchronous Socket đ ng đư c xác đ nh b i s tham chi u t i mã c a ng d ng và tham chi u t i asynchronous I / O . Nó là không c n thi t cho ng d ng đ duy trì m t tham chi u cho các đ i tư ng SocketAsyncEventArgs sau khi nó đư c g i đi như là m t tham s vào m t trong nh ng phương pháp asynchronous Socket. Nó s v n đư c tham chi u cho đ n khi đư c tr v hoàn t t. Tuy nhiên, đó là l i th cho ng d ng đ gi l i tham chi u đ n các đ i tư ng SocketAsyncEventArgs đ nó có th đư c tái s d ng cho asynchronous socket ti p theo ho t đ ng. 5 Mã hóa d li u c a service Namespace System.Security.Cryptography ch a các l p mà cho phép b n th c hi n c hai lo i mã hoá đ i x ng và mã hoá b t đ i x ng, t o ra hashes và ch ký s , và s ng u nhiên. Ph n này mô t cách th c đ t o ra mã hash và ch ký s .
  15. Infoway CHƯƠNG VIII: GIAO TI P M NG TRONG SILVERLIGHT Solutions Các b n có th d c thêm t i .NET Framework, Cryptographic Services
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2