WCF Web服务安全性:如何在Web服务上使用安全性?

时间:2010-06-29 15:08:54

标签: c# wcf web-services authentication soap

我创建了一个简单的.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);
}

2 个答案:

答案 0 :(得分:4)

我建议阅读Juval Lowy的精彩文章Declarative WCF Security。他描述了五种常见的场景(内联网,互联网,b2b,匿名,根本没有安全性),并说明了这意味着什么,如何实现这一点等。

他甚至可以创建声明属性,您基本上可以将它放在服务声明上并完成它。

如果不是典型案例的95%,这些安全方案应该至少覆盖80%。研究它们并使用它们!强烈推荐

答案 1 :(得分:1)

这实际上取决于您想要什么样的安全性。协议是否应加密,数据是否应加密,或者您只是想对用户进行身份验证。在最后一种情况下,您可以继续使用您想要的任何技术来验证用户是否有权使用API​​。有关其他选项和一些代码,请查看此MSDN文章http://msdn.microsoft.com/en-us/library/ms731925.aspx