2017-01-25 18 views
0

WCFを初めて使用しています。私は認証のための安らかなサービスを実装しようとしています。WCF restサービスでURIなしでPOST経由でデータを送信する方法

私のWCFコードは以下の通りです。

私がここで行う必要があるのは、URLで受け取らずにユーザー名とパスワードを取得することです。 これはどのように達成できますか?

これは専門家のための基本的な質問かもしれませんが、私はこれに新しいです。どんな助けもありがとうございます。

ありがとうございました。

+0

あなたのサービスを使用している場合、私はかなり確信しています。 HttpWebRequest req =(HttpWebRequest)HttpWebRequest.Create(uri); uriが必要ですが、メソッドが設定されているときにユーザー名とパスワードが渡されません。 req.Method = "POST"; –

+0

コンシューマーはURIで値を渡す必要はありませんが、依然としてユーザー名とパスワードの変数で値を取得しますか? –

+0

クライアント側でリクエストを作成し、リクエストフィールドを適切に設定することでサービスメソッドを呼び出す必要があります。 HttpWebRequest req =(HttpWebRequest)HttpWebRequest.Create(uri); req.Methos = "投稿"; req.ContentType = "application/json"; byte [] bodyBytes = Encoding.UTF8.GetBytes( "{\" Name \ ":\" John Doe \ "、\" Age \ ":33}"); req.GetRequestStream()。書き込み(bodyBytes、0、bodyBytes.Length); req.GetRequestStream()。閉じる(); 「認証」、 \tは、「属性」::{ \t \t「アカウント名」:「管理者」、 消費者が値を渡すことが、値がURL –

答えて

2

ここではわかりやすくするためにコメントを書き換えます。

あなたのクライアント側は、要求を作成し、適切にフィールドを要求し設定することにより、消費者が値を渡すために持っている方法ではなく値がその例

HttpWebRequest req =(HttpWebRequest)HttpWebRequest.Create(uri); 

req.Method = "Post"; 
req.ContentType = "application/json"; 
byte[] bodyBytes = Encoding.UTF8.GetBytes("{\"Name\":\"John Doe\",\"Age\":33}"); 

req.GetRequestStream().Write(bodyBytes, 0, bodyBytes.Length); 
req.GetRequestStream().Close(); 

もちろん

resp = (HttpWebResponse)req.GetResponse(); 

のサービスメソッドを呼び出す必要がありますURLを直接移動しないでください

私はメソッド名がURIで渡され、このメソッドが必要とする属性だけが内部に渡されると思いますjson。

+0

ありがとうございます。私はこれを試してみる –

0

{"アクション": "認証"、 "属性":{"AccountName": "admin"、 "パスワード": "パスワード"}}}。これは、クライアントがデータを送信する方法です。だから 私は私のサービスメソッドで3つの引数を持っている必要がありますか?アクションの場合、 アカウント名とパスワード?

この場合、あなたのサービスの操作は次のようになります。

Employee authEmployee(string action, attributes attr); 

は、属性を定義したようなタイプ:サイドノートとして

class attributes 
{ 
    string AccountName { get; set; } 
    string Password { get; set; } 
} 

をあなたがしている場合、それは特に、セキュアではありませんこの方法でクレデンシャルを平文で渡します。

関連する問題