2012-06-20 2 views
0

Я пытаюсь получить учетные данные службы на стороне клиента, используя ServiceSecurityContext.Current.WindowsIdentity.Name. Но, ServiceSecurityContext.Current выходит как null.Получение учетных данных службы на стороне клиента

Служба и клиенты используют аутентификацию Windows, режим безопасности сообщений и wsHttpBinding. Ваша помощь очень приветствуется.

+0

Вы пытаетесь получить клиента учетных данных на сервере или сервере верительных у клиента ?? – Anand

ответ

0

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

BasicHttpBinding basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);    
basicHttpBinding.Security.Transport.ClientCredentialType =HttpClientCredentialType.Windows;     
reportService = new ReportingService2005SoapClient(basicHttpBinding, new EndpointAddress(reportServerUrl)); 
reportService.ClientCredentials.Windows.AllowNtlm = false; 
reportService.ClientCredentials.Windows.AllowedImpersonationLevel =   TokenImpersonationLevel.Impersonation; 
reportService.ChannelFactory.Credentials.Windows.ClientCredential = 
        CredentialCache.DefaultNetworkCredentials; 

EDIT

MSDN

Используйте этот класс, чтобы получить информацию о контексте безопасности удаленного во время выполнения , Контекст безопасности создается, когда клиент успешно аутентифицирован и имеет право доступа к методу. Когда сообщение успешно прошел аутентификацию и авторизацию, информация о безопасности от клиента и для экземпляра текущего обслуживания может быть получен из экземпляра этого класса

+0

Спасибо Ананд за быстрый ответ. – Mallya

+0

Теперь я начинаю смущаться ... Возможно, я понял концепцию совершенно неправильно. Хотя не уверен ... .. Позвольте мне объяснить, что я понимаю. В WCF, когда мы говорим об аутентификации, это всегда взаимная аутентификация. Клиент аутентифицирует себя для обслуживания и обслуживания, аутентифицирует себя клиенту. Когда взаимная аутентификация будет успешной, объект ServiceSecurityContext будет заполнен как на стороне клиента, так и на стороне обслуживания. На стороне клиента он будет иметь учетные данные сервера, а со стороны службы он будет иметь учетные данные клиента. – Mallya

+0

Итак, купите это, я должен иметь доступ к учетным данным службы на стороне клиента. Пожалуйста, дайте мне знать, если я worng ... – Mallya

Смежные вопросы