|
[WebMethod]
public bool Logon(string Username, string Password) {
// 驗(yàn)證身份
return true;
}
}
}
現(xiàn)在,username和password成了logon()方法的參數(shù)。修改之后的代碼的優(yōu)點(diǎn)在于,它把登錄操作對服務(wù)器的三次調(diào)用降低到了一次。另一方面,如果參數(shù)的個(gè)數(shù)太多,這個(gè)方法可能看起來很不像樣。這時(shí),可能要把方法的參數(shù)整理成幾個(gè)復(fù)雜類型,例如,把username和password兩個(gè)參數(shù)封裝到一個(gè)credential(證書)對象里面。
四、在Web.Config中保存應(yīng)用私有的數(shù)據(jù)
用ASP.NET開發(fā)的Web服務(wù)能夠發(fā)揮出.aspx應(yīng)用的所有特長,包括用web.config文件保存應(yīng)用私有數(shù)據(jù)的能力(例如,數(shù)據(jù)庫連接字符串、文件路徑等)。用Web.config而不是global.asax文件的好處在于修改配置之后不必重新構(gòu)造應(yīng)用。
五、避免使用ASP.NET會(huì)話狀態(tài)
.NET實(shí)現(xiàn)的會(huì)話狀態(tài)管理功能解決了它的前輩ASP 3.0存在的許多問題,例如請求串行化等,但仍存在一些局限。應(yīng)當(dāng)認(rèn)識到,.NET的會(huì)話狀態(tài)管理功能不是專門為Web服務(wù)環(huán)境中的會(huì)話狀態(tài)而設(shè)計(jì),而是為了在范圍更廣泛的ASP.NET應(yīng)用中管理會(huì)話狀態(tài)而設(shè)計(jì),它依賴于HTTP Cookie(有一種通過改寫URL實(shí)現(xiàn)的不需要Cookie的模式,但不適用于Web服務(wù))。
Cookie是HTTP獨(dú)有的。在Web上,所有的瀏覽器都支持HTTP,所以Cookie非常適合在Web應(yīng)用中使用。但是,在Web服務(wù)中應(yīng)用Cookie卻把服務(wù)限定到了HTTP協(xié)議上。另一方面,SOAP協(xié)議的運(yùn)行是獨(dú)立于傳輸協(xié)議的,因此如果把Web服務(wù)應(yīng)用限制到HTTP協(xié)議上,應(yīng)用的靈活性也受到了限制,一旦要通過非HTTP的傳輸協(xié)議(例如SMTP)提供服務(wù),事情會(huì)變得很麻煩。
|
|
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|