我创建了一个简单的.NET WebService(它只传回一个字符串)。如何修改服务器端(可能还有客户端),以便在发送响应之前使用用户名/密码进行验证?
客户代码:
static void Main(string[] args)
{
UpdateClient client = new UpdateClient("UpdateSOAPIIS");
client.ClientCredentials.UserName.UserName = "Michael";
client.ClientCredentials.UserName.Password = "testpassword";
String response = client.GetString("New York, NY");
Console.WriteLine(response);
if (client != null) client.Close();
}
服务器代码:
public virtual GetStringResponse GetString(GetStringRequest request)
{
return new GetStringResponse("Search Location: " + request.location);
}
答案 0 :(得分:4)
我建议阅读Juval Lowy的精彩文章Declarative WCF Security。他描述了五种常见的场景(内联网,互联网,b2b,匿名,根本没有安全性),并说明了这意味着什么,如何实现这一点等。
他甚至可以创建声明属性,您基本上可以将它放在服务声明上并完成它。
如果不是典型案例的95%,这些安全方案应该至少覆盖80%。研究它们并使用它们!强烈推荐
答案 1 :(得分:1)
这实际上取决于您想要什么样的安全性。协议是否应加密,数据是否应加密,或者您只是想对用户进行身份验证。在最后一种情况下,您可以继续使用您想要的任何技术来验证用户是否有权使用API。有关其他选项和一些代码,请查看此MSDN文章http://msdn.microsoft.com/en-us/library/ms731925.aspx