2010-11-08 65 views
1
string Authenticate(string username, string password); 

舉一個簡單的身份驗證方法,它在用戶名和密碼,如果成功則返回一個令牌,我需要能夠應對各種故障情況,包括應付 - 憑據無效,鎖定帳戶,等待驗證等。最佳方式

這是什麼最好的方法呢?

我考慮之一以下兩個選項,但我開到別的:

(1)改變響應物體與枚舉以及令牌。儘管這種方法的版本控制有點擔心。 (2)每個故障情況下的錯誤合同。雖然不確定這裏的表現。

回答

0

只有當您想要返回更多詳細信息/管理客戶端的異常時,才應該使用FaultContract。一個例外(就像你自己猜的名字一樣)是你無法預見的東西,或者是一些違揹你意願的事情:-) 在你的情況下,你已經知道登錄可以被鎖定,無效等。我認爲你應該返回一個枚舉器(或封裝成一個對象)提供更多的信息,而不是提出一個例外來強制使用錯誤契約 我希望它是有道理的