Ограничение доступа к службе WCF REST (webHttpBinding) с использованием поставщика членства ASP.NET? - PullRequest
8 голосов
/ 26 января 2009

В Интернете я нашел много материалов об использовании поставщика членства ASP.NET с wsHttpBindings, но я не видел ссылок на его использование с webHttpBindings.

Я ищу систему, которая будет работать в двух сценариях:

  1. Пользователь вошел на веб-сайт asp.net, и веб-сайт совершает звонки в службу.
  2. Пользователь обращается к сервису напрямую через REST.

Возможно ли это с помощью встроенного фреймворка (т. Е. Только через настройку)? Если да, то как мне настроить службу? И как пользователь передает учетные данные службе REST?

Ответы [ 2 ]

2 голосов
/ 27 января 2009

Лучший источник, который я нашел здесь: http://www.leastprivilege.com/FinallyUsernamesOverTransportAuthenticationInWCF.aspx

На сайте также имеется масса другой информации о настройке модулей HTTP для обработки базовой аутентификации (которую, я полагаю, вы будете использовать, поскольку она является своего рода стандартом).

Метод аутентификации модуля HTTP находится в Codeplex с примером кода и всем здесь: http://www.codeplex.com/CustomBasicAuth

0 голосов
/ 26 января 2009

Службы данных ADO.NET вы имеете в виду?

Вы можете создать QueryInterceptor для сущности и ограничить доступ к ней. Например:

    [QueryInterceptor("foo_entity")]
    public Expression<Func<foo_entity, bool>> FilterMembership()
    {
        MembershipUser user = Membership.GetUser();
        Guid userGuid = (Guid)user.ProviderUserKey;
        return c => c.UserId == userGuid;
    }
...