Ограничение доступа к службе WCF REST (webHttpBinding) с помощью поставщика членства ASP.NET?

StackOverflow https://stackoverflow.com/questions/481090

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Вы имеете в виду службы данных 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;
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top