Как авторизовать пользователей в службе WCF, размещенной на веб-сайте - PullRequest
2 голосов
/ 29 января 2010

У меня есть служба WCF, которая работает в моем веб-приложении, которое предоставляет данные приложению Silverlight и определяется следующим образом (с соответствующим файлом .svc) ....

[ServiceContract(Namespace = "")]       
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class DispatchService
{
    [OperationContract]
    public DateTime GetServerTime()
    {
        // Add your operation implementation here
        return DateTime.Now;
    }

Идея состоит в том, что пользователь входит на веб-сайт, а затем авторизуется для всех служб. Я не хочу иметь аспект входа в мое приложение Silverlight для аутентификации пользователей.

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

Могу ли я ...

  1. Каким-то образом определить это для каждого контракта на эксплуатацию. Я заглянул внутрь объекта OperationContext, но не смог найти муравейник, который выделялся как способ определить, кем был пользователь.

  2. Каким-то образом атрибут ServiceContract, чтобы метод мог использоваться только авторизованными пользователями?

  3. Поместите что-нибудь в мой web.config, чтобы не допустить несанкционированного доступа пользователей к папке, содержащей службы?

Ваши мысли будут очень высоко оценены.

Спасибо.

1 Ответ

0 голосов
/ 29 января 2010

Взгляните сюда: Рецепт: WCF basicHttpBinding с аутентификацией Windows .

Вы также можете поместить свой файл .svc в папку и запретить доступ неаутентифицированным пользователям через тег <location> в вашем файле web.config

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