2011-08-03 11 views
1

私は、次のサービス契約を結んでSOAPエンドポイントを提供するWCFサービスを持っている:ポートWCFのSOAPサービス:ユーザ/パスワードを実装する方法/トークン認証

ログイン()のチェックを呼び出す
[OperationContract] 
string Login(string sAuthUserName, string sAuthUserPassword); 

[OperationContract] 
Consumer GetData(string sAuthKey); 

[OperationContract] 
bool Logout(string sAuthKey); 

[OperationContract] 
DataSet GetSingleByRefID(string sAuthKey, int iCommand, int iRefID); 

提供されたsAuthUserNameとsAuthUserPassword anは、さらに認証に使用されるハッシュ(sAuthKey)を生成します。

これをRESTに移植するにはどうすればいいですか? 次のアドレスを使用していますか?

/session/{sAuthUserName}/{sAuthUserPassword} [POST] 

は、ログインされるであろう()

/consumer/{sAuthKey} [GET] 

のGetData()であろう

/session/{sAuthKey}/ [DELETE] 

ログアウト()であろう

/data/single/{sAuthKey}/{iCommand}/{iRefID} [GET] 

GetSingleByRefIDあろう()

ユーザー名とパスワードで認証する最善の方法はどれですか? これは1回だけ必要ですか?その後、RESTコンシューマーはAuthKeyで認証できるはずです。

答えて

1

認証関連の値(あなたの場合はusername、password、auth-key)にも同様の状況とヘッダーを使用します。 auth関連のメソッドは、パラメータなしで呼び出されます。安全なトランスポートを介して通信が行われます。

あなたはそれだ

HttpRequestMessageProperty httpProperties; 
string sAuthKey = default(string); 
if (OperationContext.Current.IncomingMessageProperties.TryGetValue(HttpRequestMessageProperty.Name, out httpProperties)) 
{ 
    sAuthKey = httpProperties.Headers["sAuthKey"]; 
} 
+0

以下のようなヘッダの値にアクセスすることができます!ありがとう! – Mike

関連する問題