Аутентификация WebService с использованием по умолчанию MembershipProvider - PullRequest
3 голосов
/ 02 апреля 2010

Рекомендуется использовать для проверки подлинности конкретных OperationContracts при использовании по умолчанию MembershipProvider для безопасности (FormsAuthentication).

Полагаю, что Membership.ValidateUser и Membership.GetUser просто не уменьшат их при использовании WebServices, верно?

Другими словами: как я могу проверить, что пользователю разрешено использовать определенные методы в веб-сервисе (что пользователь аутентифицирован / "вошел в систему")?

Ответы [ 2 ]

3 голосов
/ 04 апреля 2010

Да, вы не можете использовать FormsAuthentication в этом случае. Но в WCF имеется отличная инфраструктура для управления доступом на основе ролей к отдельным методам: http://msdn.microsoft.com/en-us/magazine/cc948343.aspx

1 голос
/ 06 апреля 2010

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

Теперь вы можете применить защиту доступа к коду (CAS) на оболочке.

Пример кода может выглядеть так (тонны деталей для краткости опущены)

internal class ServiceWrapper
{
    Service Svc;
    public ServiceWrapper()
    {
        Svc = ServiceClient();
    }

    [System.Security.Permissions.PrincipalPermission(System.Security.Permissions.SecurityAction.Demand, Role = "HelloWorld")]
    public string HelloWorld()
    {
        return Svc.HelloWorld();
    }
}

В идеальном мире мы бы хотели, чтобы CAS был немного более сухим (не повторяйся), то есть обрабатывался в WCF, как ты предлагаешь. Но это может быть хорошим посредником, если вы знаете, что можете заблокировать приложение WCF и контролировать, кто его вызывает: -)

Это поможет вам упростить раскрутку мяча ...

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...