【发布时间】:2017-01-25 08:22:44
【问题描述】:
我是 WCF 的新手。我正在尝试实现一个用于身份验证的宁静服务。
我的 WCF 代码如下。
[OperationContract]
[WebInvoke(Method="POST", UriTemplate = "auth", RequestFormat=WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Wrapped)]
Employee authEmployee(String username, String password);
我需要在这里做的是获取用户名和密码,而不是通过 URL 接收。 我如何做到这一点?
这对于专家来说可能是一个基本问题,但我对此并不陌生。任何帮助表示赞赏。
谢谢。
【问题讨论】:
-
我很确定如果您使用 HttpWebRequest req =(HttpWebRequest)HttpWebRequest.Create(uri); 调用您的服务那么你需要uri,但是在设置方法时没有传递用户名和密码 req.Method = "POST";
-
是不是意味着,消费者不需要在 URI 中传递值,我仍然会在用户名和密码变量中获取值??
-
您的客户端应该通过创建请求和正确设置请求字段来调用服务方法,例如 HttpWebRequest req =(HttpWebRequest)HttpWebRequest.Create(uri); req.Methos = "发布"; req.ContentType = "应用程序/json"; byte[] bodyBytes = Encoding.UTF8.GetBytes("{\"Name\":\"John Doe\",\"Age\":33}"); req.GetRequestStream().Write(bodyBytes, 0, bodyBytes.Length); req.GetRequestStream().Close();这样,消费者必须传递值,但这些值不会直接通过 url
-
{ "action": "Authenticate", "attributes": { "AccountName": "admin", "Password": "password" } }。这就是客户端发送数据的方式。那么我的服务方法中应该有 3 个参数吗?操作、帐户名和密码?
-
@PawełSwajdo 你应该发布答案而不是评论。