Как ограничить доступ к службе данных WCF для определенной учетной записи пользователя? - PullRequest
2 голосов
/ 27 августа 2010

Я прочитал так много постов и статей в блоге, что мои глаза становятся размытыми. Я еще не нашел то, что мне нужно (или я просто не понимаю, что я делаю, что наиболее вероятно).

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

Если кто-то обращается к службе WCF непосредственно из браузера или из другого приложения, он не должен иметь доступа к данным.

Как мне это настроить? Я пытался подражать, но я не мог заставить это работать.

Защита служб данных WFC кажется слишком сложной, но, возможно, я просто не смотрю на это правильно. Любая помощь будет оценена. Спасибо.

1 Ответ

3 голосов
/ 09 мая 2011

Подумайте о прочтении следующего: http://msdn.microsoft.com/en-us/library/dd728284.aspx

Я хотел бы рассмотреть что-то вроде следующего кода. OnStartProcessingRequest происходит при каждом вызове служб данных WCF;

   Protected Overrides Sub OnStartProcessingRequest(ByVal args As System.Data.Services.ProcessRequestArgs)
        MyBase.OnStartProcessingRequest(args)
        If HttpContext.Current.User.Identity.Name.ToLower <> "UserName".ToLower Then
            Throw New DataServiceException("Services restricted")
        End If
   End Sub

Я уверен, что будут и другие способы сделать это. Если бы он был размещен в IIS, я бы предположил, что он может быть ограничен так же, как и любое другое веб-приложение asp.net, но я не особо на это смотрел.

...