最近、c# asp.net (3.5) でいくつかの Web サービスに取り組んでいます。
私のメソッドはそのようで、いくつかの基本的なユーザー関連フィールド (名前、年齢、i など) で構成される User オブジェクトを返します。
[WebMethod, SoapHeader("AuthHeader")]
public user[] Employees(int count)
{
user[] myUsers = new user[count];
<logic here inc. checking if user is authorised>...
return myUsers;
}
Web サービス ID を消費するクライアントの認証が失敗した場合、Web サービス内で正しくフォーマットされたエラーが返されます。
これを達成するためのベストプラクティスの方法は何ですか? 単純に Response.StatusCode または Null リターンをプッシュするのは良い習慣ではないと思いますか?
認証時の現在のペイロード XML は次のようになります。
<ArrayOfUser>
<user>
<empid>57344</empid>
<firstname>Dave</firstname>
<surname>Johnson</surname>
</user>
<user>
<empid>17324</empid>
<firstname>Mike</firstname>
<surname>Doe</surname>
</user>
</ArrayOfUser>
エラーが発生した場合、次のようなものを返す必要がありますか?
<soap:error>
<errorcode>12345</errorcode>
<errorstring>Invalid username/password</errorstring>
</soap:error>
または、より良いベストプラクティスの方法はありますか?
2 番目の問題は、そのような XML 構造を返すことができるように、どのようにメソッドを構築すればよいかということです。現在、私の「Employees」メソッドは「User[]」型であるため、「User」型の配列を返す必要がありますが、エラーが発生した場合は、上記の XML 構造をシミュレートするために別の型を返すか、単純なエラーが発生したことを示す文字列。
どうすればこれを達成できますか?
どんな助けでも素晴らしいでしょう!乾杯!