You are on page 1of 15

Smith Nguyen Studio.

Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

CHNG VIII:
GIAO TIP MNG TRONG SILVERLIGHT
1 Giao tip HTTP v bo mt trong Silverlight
Silverlight cho php HTTP / HTTPS giao tip vi cc dch v lu tr trn my ch web
vi c hai trng hp bn trong v bn ngoi tn min ca bn c lu tr trn c s
ng dng Silverlight. Ch ny tho lun v mt s kch bn HTTP giao tip v lm
th no bn c th kch hot cc kch bn.

1.1

Mc nh h tr giao thc HTTP

C mt s kh nng c bn cho tt c nhng kiu giao tip HTTP/HTTPS ca


Silverlight

Trong cng tn min th mi triu gi lun c chp nhn

Khi cc Web service c thip lp ng trn my ch lu tr th vic truy cp


t tn min khc ti l c h tr.

Tt c cc giao tip l khng ng b

Ch h tr phng thc GET v POST

Hu ht cc triu gi tiu chun v cc ty chnh Header c h tr.


(Header phi c cho php trong file cross-domain policy cho cc triu gi ti
t domain khc.)

Ch c m trng thi 200-OK v 400-Khng tm thy

1.2

Kch bn giao tip HTTP

Silverlight h tr mt s kch bn c s dng giao thc HTTP / HTTPS. Mc d c


nhiu cch thc v cng ngh c th c s dng thc hin cc triu gi giao thc
HTTP, bng sau m t phng php tip cn i vi mt s tnh hung giao tip c th
xy ra. Nhng phng php tip cn s c tho lun chi tit hn sau ny trong ti
liu ny
Kch bn
Download v
Upload ti nguyn
trong cng mt
domain
Triu gi Web
service trn giao

Phng php tip cn nn dng


S dng lp WebClient thao tc

S dng lp WebClient hoc nhng lp


HttpWebRequest/HttpWebResponse thao tc

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

thc HTTP trong


cng mt domain
Triu gi SOAP,
WCF, hoc
ASP.NET AJAX
Web services c
lu tr trong cng
mt domain.
Gi Web service
trn tn min khc.

Thit lp header
cho triu gi crossdomain

1.3

Triu gi thng qua proxy cho Web service. Nu bn


khng mun x dng proxy th s dng cc lp

Chc chn l file cross-domain policy nm th mc gc


ca domain(mc nh l wwwroot). S dng proxy, lp
WebClient hoc cc lp
HttpWebRequest/HttpWebResponse.
- m bo l header cho php thng qua tp tin crossdomain policy
- i vi cc yu cu trn cc d liu upload, s dng lp
WebClient. Thit lp cc tp hp cc header mun c.
- i vi cc kch bn s dng lp HttpWebRequest. Thit
lp thuc tnh ca n vi tp hp nhng header mong
mun.

Giao tip trong cng mt domain

Mc nh Silverlight h tr triu goi ti Web service trong cng mt domain. Trong


cng domain c tc l nhng triu gi phi trong cng mt sub domain, giao thc, v
cng. iu ny l v l do bo mt, ngn chn s truy cp tri php ti Web service.
Minh ho v triu gi Web service sau y v s cho php v khng cho php s truy
cp ca ng dng Silverlight khi s dng nhng thit lp mc nh:

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

1.4

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

Giao tip Cross-domain

Bn c th cho php ng dng Silverlight domain khc triu gi Web service ca bn


thng qua vic thit lp chnh xc tp tin cross-domain policy t ti gc ca domain
(mc nh l th mc wwwroot).Silverlight h tr 2 loi ca tp tin cross-domain policy;
-

Silverlight Cross-Domain Policy (clientaccesspolicy.xml)

Mt nhm ca Flash Cross-Domain Policy(crossdomain.xml)

V d sau y minh ho v giao tip cross-domain thng qua vic s dng tp tin
Cross-Domain Policy.

Ni chung, khi mt ng dng Silverlight pht hin rng triu gi ca n l cross-domain,


trc tin n s tm tp tin Silverlight Cross-Domain (clientaccesspolicy.xml) ti v tr
gc ca Web service. Nu triu gi ny tr v m li 404-Khng tm thy hoc cc li
khc, ng dng sau s tm tp tin Flash Cross-Domain (crossdomain.xml) ti v tr
gc domain.

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

Bng sau lit k cc triu gi v URIs ni Silverlight da trn ng dng s tm tp 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
Khng th dng GET request bao gm header khi s dng cross-domain. Ch s dng
c request header vi POST request khi n c ch ra tp tin cross-domain
policy.

Lu bo mt Web service c dng cho Silverlight vi triu gi cross-domain

nghin cu k lng v bo mt trc khi bn cho php cc kt ni t Silverlight truy


cp vo Web service s dng tp tin cross-domain. Bt c khi no bn t tp tin
cross-domain policy ni m bn cu hnh my ch lu tr web service th nn thit
lp v hiu ho b nh m ca trnh duyt. iu ny cho php bn d dng cp nht
cc tp tin hoc hn ch quyn truy cp vo cc Web service ca bn nu cn thit.
Ngoi ra, tt c cc request ca Silverlight c gi vi cc tp tin cookie v xc thc.
iu ny c ngha l nu bn c Web service cho php ngi s dng truy cp thng
tin c nhn, bn nn lu tr n vi tn min khc nhau hn l trn Web service tip
xc vi bn th ba. V d, bn c mt kho lu tr trn my ch web ti
http://contoso.com. Trang web ca bn cho php khch hng lu tr thng tin thanh
ton bao gm s th tn dng. Bn khng nn lm mt Web service tr li sn phm
tn kho ca bn khch hng th ba s dng Silverlight ti cng mt tn min. Bi v
cc tp tin cookie v xc thc c gi i vi mi request, nu bn lu tr cc Web
service trn cng mt tn min, th cc bn th ba s dng dch v ca bn c th truy
cp vo d liu thanh ton c nhn ca khch hang ca bn. Trong v d ny, cng
khai giao tip ca Web service ca bn c th c lu tr trn my ch an ton ti
http://services.contoso.com, bi v y l mt tn min khc. Bn phi cn thn xem xt
nhng i tng tip xc vi Web service, v nhng Web service khc ang nm ti
domain . Ngoi ra, bn nn lun lun gi tp tin cross-domain policy cng hn ch
cng tt.

V d v tp tin Cross-Domain Policy

Tp tin cross-domain policy ca Silverlight l mt tp tin XML c nh dng n gin. V


d di y ch ra tp tin cross-domain policy ca Silverlight cho php requests ti
Web service lin kt ti ng dn services ca domain. Tp tin cross-domain policy
cng ch ra loi ni dung header l SOAPAction.
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

<policy >
<allow-from http-request-headers="SOAPAction">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/services/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Tp tin Flash Cross-Domain Policy
Silverlight h tr Flash Cross-Domain (crossdomain.xml). Silverlight h tr th <allowaccess-from> vi cc thuc tnh sau:
+ domain vi thuc tnh gi tr "*", c ngha l tt c cc domain u c th triu
gi.
+ secure chp nhn gi tr l true hoc false l s dng tng ng HTTPS hay
HTTP.
+ headers nhn cc gi tr header.
Sau y l v d ca mt tp tin Flash crossdomain.xml vi Silverlight.
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/ headers="SOAPAction"
secure="true">
</cross-domain-policy>

1.5

Thit lp triu gi HTTP

Ty thuc vo kch bn, bn c th thc hin cc cuc gi HTTP s dng lp clienside proxy hoc xy dng triu gi ca chnh bn. Di y l nhng phn m t cc
phng php khc nhau thc hin cc cuc gi trn mng bng cch s dng
HTTP

S dng lp Proxy
Bn c th to ra mt lp proxy t Web service metadata v s dng proxy kt
ni ti Web service t ng dng Silverlight ca bn. Silverlight s dng Windows
Communication Foundation(WCF) to ra proxy v gi message SOAP 1.1 thng
qua giao thc HTTP. Nu bn s dng Visual Studio, bn chut phi vo d n
Silverlight v chn Add Service Reference s t ng to proxy cho bn. Proxy s
to message v x l giao tip mng cho bn.

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

To request HTTP
+ Nu bn mun to triu gi HTTP ca bn, bn c th s dng nhng lp c
cung cp trong namespace System.Net
+ WebClient
+ HttpWebRequest v HttpWebResponse
Nhng lp ny cho php bn to request GET hoc POST v cho php request
header trong mt vi trng hp. Thm na, bn c th thit lp nhng lp ny
tng cng download vi GET request

Lp WebClient
Lp WebClient cung cp s kin n gin, da trn m hnh cho php bn ti
xung v ti ln sui v strings. Cc WebClient l mt la chn tt nu bn khng
mun s dng mt proxy lp hc. Ni chung, lp ny l d s dng, nhng cung
cp t hn cc ty chn ty chnh cc message c gi qua mng.
Bng sau y tm tt cc header h tr cho cc lp WebClient.
Giao thc
HTTP
GET
POST

Gi trong cng
domain
Header lun c
chp nhn
Header lun c
chp nhn

Gi Cross-Domain
Request header khng c
chp nhn
Request headers chp nhn
thng qua tp tin cross-domain
policy.

to POST request vi WebClient v ti ln tp tin bt k hoc nhng chui, bn


s dng mt trong nhng phng thc sau y.
+ WebClient..::.OpenWriteAsync
+ WebClient..::.UploadStringAsync
Bn c th xt header cho POST request thng qua thuc tnh
WebClient..::.Headers . Request header phi c cho php trong tp tin crossdomain policy.

on m v d di y to POST request s dng WebClient


// To mt instance ca WebClient.
WebClient client = new WebClient();
public Page()
{

https://www.facebook.com/SmithNguyenStudio

Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

InitializeComponent();
// ng k hng s kin UploadStringCompleted.
client.UploadStringCompleted +=
new UploadStringCompletedEventHandler(client_UploadStringCompleted);
}

private void Button_Click(object sender, RoutedEventArgs e)


{
// To request.
string postRequest = "<entry xmlns='http://www.w3.org/2005/Atom'>"
+ "<title type='text'>New Restaurant</title>"
+ "<content type='xhtml'>"
+ " <div xmlns='http://www.w3.org/1999/xhtml'>"
+ " <p>There is a new Thai restaurant in town!</p>"
+ " <p>I ate there last night and it was <b>fabulous</b>.</p>"
+ " <p>Make sure and check it out!</p>"
+ " </div>"
+ " </content>"
+ " <author>"
+ " <name>Pilar Ackerman</name>"
+ " <email>packerman@contoso.com</email>"
+ " </author>"
+ "</entry>";
// Gi request ti URL c th.
client.UploadStringAsync(new
create?blogID=1234",
UriKind.Absolute), postRequest);
}

Uri("http://blogs.contoso.com/post-

// Hng s kin UploadStringCompleted.


void client_UploadStringCompleted(object sender,
UploadStringCompletedEventArgs e)
{
// Hin th ra kt qu nhn c.
if (e.Error != null)
tb1.Text = e.Error.Message;
else
tb1.Text = e.Result;
}

1.6

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

2 Cc hn ch trong truy cp mng vi silverlight


Phin bn Silverlight 2 h tr hai kiu chnh sau ng dng kt ni ti my ch t xa:

Lp WebClient v nhng lp HTTP c trong namespace System.Net nhng


lp ny s dng giao thc HTTP or HTTPS cho giao tip mng.
Nhng lp Sockets trong namespace System.Net.Sockets nhng lp ny cung
cp interface mc thp ca cc socket n c th c s dng rng mt
cch rng ri trong giao tip mng.

c hai trng hp trn, cn phi cung cp bo mt v ngn chn ng dng


Silverlight kt ni ti t cc kt ni khng c php. Nhng mi e do tn cng t
mng bao gm:

Tn cng t tri dch v (DoS) Mt s lng ln cc my t xa c s dng


nhm mc tiu tn cng vo mt trang web mc tiu l khng th request
dch v hp l.
Tn cng thay i thng tin DNS S dng DNS qun l my ch v cp
nht li tn my ch ti a ch IP ca nn nhn, bi vy cho php truy cp s
vo my ch khc hn l vo my ch thc s ca website .
Reverse tunnel attack Use a remote clients outgoing connection as a back
tunnel to the clients private network.

Cc chnh sch bo mt h thng kt hp trong Silverlight c thit k ngn chn


cc mi e da mng. Ngoi ra, h thng chnh sch cng nhm mc ch cung cp
cho cc qun tr vin kim sot nhiu hn cc ngun lc t xa m khch hng c
php kt ni n.
Trc y thit k cho cc mng c kh nng b sung gii hn kt ni n my ch
ca trang web hoc web gc. iu ny c ngha l trang web , mt ng dng c th
ch giao tip li cho trin khai cc my ch, do , mng li cc ng dng c php
kt ni n my ch m t chng c ti v.
Silverlight 2 bao h tr kt ni cross-domain cho php mt ng dng truy cp vo
cc ti nguyn t cc a im khc(sub domaint, ) hn l vi trang web gc. y l
mt tnh nng quan trng to iu kin cho cc ng dng Silverlight s dng cc
dch v hin c trn web. Cc chnh sch an ninh h thng trong Silverlight 2 runtime
by gi, i hi mt tp tin cross-domain policy c ti v trc khi s kt ni c
php truy cp vo ti nguyn . iu ny nh hng n chnh sch bo mt ca h
thng domain qua mng truy cp cho WebClient HTTP v cc lp trong namespace
System.Net.
i vi cc sockets, cc chnh sch an ninh h thng trong Silverlight 2 nh hng n
quyn truy cp ca c trang web gc v cross-domain. Chnh sch bo mt l bt buc
cho bt k kt ni kiu socket, thm ch c khi kt ni li ti chnh trang web . iu

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

ny khc nhau t cc hnh vi ng x trong Silverlight 2 Beta 1, ni socket c cho


php kt ni c cho php t site gc.
Cc ni dung trong phn ny cung cp thng tin chi tit v vic lm th no s dng
trong h thng chnh sch bo mt Silverlight 2 v m t chnh sch tp tin nh dng
c h tr.

2.1

Khi nim c bn v chnh sch bo mt h thng

Silverlight h tr hai loi tp tin quy nh cch ng s bo mt:


Tp tin chnh sch ca Adobe Flash - crossdomain.xml. Tp tin chnh sch ny ch c
th c s dng bi WebClient v cc lp HTTP trong namespace System.Net. Qua
tp tin chnh sch Flash, cho php truy cp vo tt c cc tn min s c s dng
bi cc Silverlight 2.
Tp tin chnh sch ca Silverlight clientaccesspolicy.xml. Tp tin c th c s dng
bi lp WebClient v cc lp HTTP trong namespace System.Net v cng c th cho
cc lp sockets trong namespace System.Net.Sockets. Tp tin chnh sch ny nh
dng khc vi tp tin chnh sch ca Flash.
Trc khi cho php kt ni vi ti nguyn mng, Silverlight 2 s c gng ti v tp tin
chnh sch bo mt t ti nguyn mng . C hai phng php khc nhau c s
dng ti v cc chnh sch bo mt m ph thuc vo vic kt ni c request
t mt WebClient hoc HTTP hoc cc lp c request kt ni t cc sockets.
Nu c yu cu kt ni t WebClient hoc cc lp HTTP ti cross-domain site,
Silverlight 2 c gng ti v cc tp tin chnh sch bo mt bng cch s dng giao
thc HTTP. Silverlight 2 u tin c gng ti v tp tin chnh sch Silverlight vi tn
"clientaccesspolicy.xml" gc ca site mc tiu bng cch s dng giao thc HTTP.
Nu tp tin chnh sch ca Silverlight tr li (thm ch nu c li trong phn tch c php
tp tin), n c s dng nh l chnh sch cho cc tp tin m request cross-domain
v tt c cc request ti my ch cho nhng phin lm vic ca cc ng dng
Silverlight. Nu tp tin chnh sch Silverlight khng c tm thy, Silverlight 2 sau
s c gng ti v mt tp tin chnh sch Flash c tn "crossdomain.xml" gc ca site
mc tiu c yu cu bng cch s dng giao thc HTTP. Cc chnh sch tp tin
Flash phi cho php kt ni n tt c cc tn min cho n s c s dng bi cc
Silverlight WebClient v cc lp HTTP.

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

Nu c yu cu kt ni t cc sockets cho trang web (cross-domain site hoc site


gc), Silverlight 2 c gng m mt kt ni TCP vo cng 943 trn trang web mc
tiu. Nu kt ni TCP c th c thit lp, Silverlight 2 gi chui c bit <policy-filerequest/> n server yu cu tp tin chnh sch Silverlight. Silverlight 2 i sau
nhn c tr li t web mc tiu c cha tp tin chnh sch Silverlight. Nu tp tin
chnh sch Silverlight ny c tr li (thm ch nu c mt li trong phn tch c php
tp tin), n c s dng nh l tp tin chnh sch cho cc request socket v tt c cc
request cho trang web mc tiu tt c cc session ca ng dng Silverlight.
Nu tp tin chnh sch ti v l thnh cng v phn tch c php cho php, cui cng l
m mt kt ni n cc host mc tiu. Nu tp tin chnh sch ti v l khng hp l v
khng th phn tch c php mt cch chnh xc, sau kt ni ti ti nguyn mng
ca Silverlight 2 s b t chi v cc yu cu kt ni s khng thnh cng. Nu khng
c chnh sch tp tin c tm thy, sau kt ni vo mng nguyn l b t chi ca
Silverlight 2 v cc yu cu kt ni s khng thnh cng.
B sung mt trong nhng hn ch bng cch s dng cc lp sockets l ng dng
mng cho php kt ni ch vi nhng cng trong phm vi 4502-4534. ng dng
Silverlight ch c php kt ni ti nhng cng nh vy khi s dng socket. Nu cc
cng m bn truy cp khng phi trong phm vi cng ny, cc c gng kt ni s tht
bi.
trin khai tp tin chnh sch bo mt s dng cc kt ni t WebClient v cc lp
HTTP, qun tr vin h thng cn phi cu hnh Web service cho mi a ch IP m l
cung cp cho cc tp tin nh ngha chnh sch v to nhng tp tin chnh sch bo
mt ca Flash v Silverlight c th tm thy qua giao thc HTTP.
trin khai tp tin chnh sch bo mt trn my cho socket, qun tr vin h thng cn
phi cu hnh mt dch v xc thc ring bit trn cng 943 cho mi a ch IP l
cung cp nh ngha cc tp tin chnh sch.

3 Truy cp web service trong silverlight


ng dng my khch Silverlight 2 chy trn trnh duyt v thng cn phi kt ni ti
nhiu ngun c s d liu ngoi khc nhau. Mt v d in hnh l vic truy cp d liu
vo c s d liu t mt my ch v hin th n ln giao din ngi dng Silverlight.
Kch bn ph bin khc l cp nht d liu trn service thng qua ng dng Silverlight
truyn ti thng tin ti service . Nhng ngun d liu ngoi thng c ly v t
Web service. Nhng service ny c th l SOAP service c to s dng Windows

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

Communication Foundation(WCF) hoc mt vi nn tng SOAP khc hoc ch n gin


l HTTP hoc Service tnh. ng dng Silverlight my khch c th truy cp nhng Web
service trc tip hoc s dng proxy c sinh ra t metadata c published bi
service.Silverlight cung cp cc tnh nng cn thit lm vic vi mt lot cc nh
dng d liu c s dng bi cc Service. Bao gm cc nh dng XML, JSON, RSS,
v Atom. Nhng nh dng d liu c truy cp s dng Serialization components,
Linq to XML, Linq to JSON, v Syndication components.

3.1

Bo mt cho truy cp Service

Bo v ng dng my khch Silverlight v d liu ngi dng

bo v ng dng silverlight khi nhng service c hi, bn phi bit v mt s vn


bo mt di y:
+ Service c th gi v nhng thng tin m lm cho ng dng my khch Silverlight v
c th l trnh duyt ca ngi dng b treo hoc li. iu ny l c th vi bt k d
liu no c nh dng XML, JSON, RSS, Atom v SOAP. trnh vic cn thc
hin nh sau:
+ Trnh khi to giao tip ti service khng tin tng khi m b li hoc treo s
gy ra mt d liu ca ng dng ca ngi dng. V d, lu li cng vic ca ngi
dng xung my trc khi khi to giao tip.
+ Trnh t ng khi to ti service khng tin tng, m khng cho php ngi
dng la chn. iu ny c th dn ti ng dng ca bn khng th dng c. Hy
ghi nh rng mt dch v c hi c th khng lun tr v d liu c hi.

Bo v Service

Hy ghi nh rng service m bn publish cho cc ng dng my khch Silverlight c


th c truy cp ca bt k ngi no v c s dng trong vi nhng cch m bn
c th khng mong i. Xem xt vic phng nga sau y:
+ Khng nn a ra d liu tha vi mc ch s dng.
+ Chc chn s dng xc thc ngi dng thch hp v mt cng ngh

3.2

To mt Service vt qua phm vi domain

cho php Silverlight qun l quyn truy cp vo service ca domain khc, th service
phi tu chnh v ch ra r rng cross-domain no c php truy cp. Bng vic tu
chnh, Silverlight control c th truy cp ti service mt cch tht an ton, m khng
gy nh hng xu n d liu m lu tr bi service.

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

Silverlight 2 h tr hai c ch khc nhau cho service tu chnh quyn truy cp crossdomain:
-

t tp tin clientaccesspolicy.xml gc ca domain ni m service c lu tr


thit lp quyn truy cp ca cross-domain ti service.

t tp tin crossdomain.xml hp l gc ca domain ni service c lu tr. Tp


tin phi c nh du l public cho ton domain

S dng tp tin clientaccesspolicy.xml cho php truy cp cross-domain


1.

To service cho php my khch Silverlight truy cp

2.

To tp tin clientaccesspolicy.xml, cho php truy cp vo cc service. Thit lp


di y cho php truy cp t bt k domain no ti ngun ti nguyn ca
domain.
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

3.

Lu tp tin clientaccesspolicy.xml ti gc ca domain ni service c lu tr.


Cho v d ny, nu service c lu tr ti http://fabrikam.com th tp tin phi
t ti http://fabrikam.com/clientaccesspolicy.xml.

S dng tp tin crossdomain.xml cho php truy cp cross-domain


1. To service cho php Silverlight client truy cp
2. To tp tin crossdomain.xml c nhng thit lp di y. Tp tin phi c cu
hnh cho php truy cp vo service t bt k tn min khc, hoc n khng
c nhn ra bi Silverlight 2
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

</cross-domain-policy>
3. Lu tp tin crossdomain.xml vo gc ca domain l ni m cc service c
lu tr trn my ch. V d, nu service c lu tr trn my ch
http://fabrikam.com
th
tp
tin
phi
c
t
ti
http://fabrikam.com/crossdomain.xml

4 Lm vic vi socket
Namespace System.Net.Sockets c thm vo trong phin bn Silverlight 2 cung cp
qun l vic trin khai thc hin ca socket giao tip mng cho nhng ngi lp trnh
vin m cn phi kim sot cht ch quyn truy cp vo mng. Trn Windows,
System.Net.Sockets cung cp mt tn qun l vic trin khai thc hin ca Windows
sockets (Winsock). Vi Apple trn h iu hnh Mac OS X, cc namespace
System.Net.Sockets cung cp, qun l vic trin khai thc hin ca cc sockets da
trn Berkeley Software Distribution (BSD) UNIX.
Namespace System.Net.Sockets cung cp mt c ch cho thi gian thc, hai giao tip
vi mng li cc ti nguyn t xa v cho php mc cao hn cc API giao tip
qua mt bi-directional. iu ny cng cho php mt ng dng ni tc nh l mt
client hin ti vi cc service TCP.
4.1

H tr giao thc mng

Namespace System.Net.Sockets h tr vic s dng cc giao thc IPv4 hay IPv6 ch


cn mng trn my tnh kch hot h tr cho IPv4 v IPv6. Cc lp c thm vo
trong namespace System.Net Silverlight 2 lm vic vi System.Net.Sockets.
Nhng lp mi bao gm sau y:
+ EndPoint - xc nh mt a ch mng. y l mt lp tru tng.
+ DnsEndPoint - i din cho mt mng li endpoint nh l mt tn my ch
hoc mt chui k t i din ca mt a ch IP v mt s cng.
+ Ipaddress - Cung cp a ch giao thc mng (IP).
+ IPEndPoint - i din cho mt mng li endpoint nh l mt a ch IP v mt
s cng.
+ SocketAddress Lu tr thng tin c sp xp v k tha t lp EndPoint.
Lp Socket cung cp mt tp hp cc phng thc cho giao tip mng. Lp Socket
cho php bn thc thi bt ng b vic truyn ti d liu s dng bt c giao thc giao

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

tip no c lit k kiu ProtocolType. Hin ti, trong Silverlight 2 ch h tr loi


giao thc TCP.
Mt trong nhng hn ch v vic s dng cc sockets trong Silverlight 2 l cc cng
phi trong phm vi 4502-4534. Ch nhng cng ny cho php kt ni bng cch s
dng sockets trong ng dng Silverlight 2. Nu mt kt ni n mt cng khng phi l
trong phm vi cng ny, vic kt ni s khng thnh cng

4.2

Lp trnh mng c bn vi Socket

Lp Socket cho php bn thc thi bt ng b truyn ti d liu s dng nhng


phng thc sau y:
+ ConnectAsync - Bt u Asynchronous request ti my ch.
+ SendAsync - Ghi d liu t mt hay nhiu buffers ti Socket kt ni .
+ ReceiveAsync - c d liu vo mt hoc nhiu buffers t Socket kt ni.
+ Shutdown - Kt thc mi thao tc gi ang ch, v cc tn hiu endpoint
rng cc kt ni c th b ng li. Nu vic gi c xc nh, d liu c th vn
ang nhn c cho n khi my ch kt thc kt ni ca n (ch nhn c 0 byte).
+ Close - L ng kt ni my ch v lu tr tt c cc ti nguyn qun l v
khng qun l c lin quan ti Socket.
Trong lp Socket, hot ng asynchronous ca Socket c m t bi kh nng dng
li System.Net.Sockets.SocketAsyncEventArgs phn b v duy tr cc i tng ca
ng dng. Cc ng dng c th to bao nhiu SocketAsyncEventArgs ca cc i
tng m n cn. V d, nu mt ng dng Silverlight cn phi c 10 Socket cho cc
thao tc cng mt lc, n c th phn b 10 SocketAsyncEventArgs cho cc i tng
trong trng hp ny.
Vng i ca SocketAsyncEventArgs c s dng trong asynchronous Socket ng
c xc nh bi s tham chiu ti m ca ng dng v tham chiu ti asynchronous
I / O . N l khng cn thit cho ng dng duy tr mt tham chiu cho cc i tng
SocketAsyncEventArgs sau khi n c gi i nh l mt tham s vo mt trong
nhng phng php asynchronous Socket. N s vn c tham chiu cho n khi
c tr v hon tt. Tuy nhin, l li th cho ng dng gi li tham chiu n
cc i tng SocketAsyncEventArgs n c th c ti s dng cho asynchronous
socket tip theo hot ng.

5 M ha d liu ca service
Namespace System.Security.Cryptography cha cc lp m cho php bn thc hin
c hai loi m ho i xng v m ho bt i xng, to ra hashes v ch k s, v s
ngu nhin. Phn ny m t cch thc to ra m hash v ch k s.

https://www.facebook.com/SmithNguyenStudio

Smith Nguyen Studio.


Infoway
Solutions

CHNG VIII: GIAO TIP MNG TRONG SILVERLIGHT

Cc bn c th dc thm ti .NET Framework, Cryptographic Services

https://www.facebook.com/SmithNguyenStudio

You might also like