WCF WebService Security: как использовать безопасность на WebService? - PullRequest
0 голосов
/ 29 июня 2010

Я создал простой .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 ]

4 голосов
/ 29 июня 2010

Рекомендую прочитать отличную статью Ювала Лоуи Декларативная безопасность WCF . Он описывает пять распространенных сценариев (интранет, интернет, b2b, анонимный, без защиты) и показывает, что это значит, как этого добиться и т. Д.

Он даже доходит до создания декларативных атрибутов, которые вы можете просто добавить в декларацию сервиса и покончить с этим.

Эти сценарии безопасности должны охватывать не менее 80%, если не 95% типичных случаев. Изучите их и используйте их! Настоятельно рекомендуется

1 голос
/ 29 июня 2010

Это действительно зависит от того, какую безопасность вы хотите. Если протокол зашифрован, данные должны быть зашифрованы, или вы просто хотите аутентифицировать пользователя. В последнем случае вы можете просто пойти дальше и использовать любую технологию, которую хотите, чтобы убедиться, что у пользователя есть разрешения на использование API. Для других вариантов и некоторого кода, проверьте эту статью MSDN http://msdn.microsoft.com/en-us/library/ms731925.aspx

...