Professional Documents
Culture Documents
Infoway
Solutions
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
1.2
https://www.facebook.com/SmithNguyenStudio
Thit lp header
cho triu gi crossdomain
1.3
https://www.facebook.com/SmithNguyenStudio
1.4
V d sau y minh ho v giao tip cross-domain thng qua vic s dng tp tin
Cross-Domain Policy.
https://www.facebook.com/SmithNguyenStudio
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.
https://www.facebook.com/SmithNguyenStudio
<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
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
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.
https://www.facebook.com/SmithNguyenStudio
Infoway
Solutions
InitializeComponent();
// ng k hng s kin UploadStringCompleted.
client.UploadStringCompleted +=
new UploadStringCompletedEventHandler(client_UploadStringCompleted);
}
Uri("http://blogs.contoso.com/post-
1.6
https://www.facebook.com/SmithNguyenStudio
2.1
https://www.facebook.com/SmithNguyenStudio
https://www.facebook.com/SmithNguyenStudio
3.1
Bo v Service
3.2
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
Silverlight 2 h tr hai c ch khc nhau cho service tu chnh quyn truy cp crossdomain:
-
2.
3.
https://www.facebook.com/SmithNguyenStudio
</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
https://www.facebook.com/SmithNguyenStudio
4.2
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
https://www.facebook.com/SmithNguyenStudio