Я пишу службу WCF, которая разрешает доступ к операциям на основе группы пользователей AD. Если зарегистрированный пользователь является частью groupA
, разрешите ему сделать operationA
, но не operationB
и так далее. Теперь для этого я должен пройти NetworkCredentials
к службе какСлужба WCF с аутентификацией Active Directory
factory.Credentials.Windows.AllowedImpersonationLevel =
TokenImpersonationLevel.Identification;
factory.Credentials.Windows.AllowNtlm = true;
factory.Credentials.Windows.ClientCredential.username = "username";
factory.Credentials.Windows.ClientCredential.password = "pwd";
factory.Credentials.Windows.ClientCredential.domain = "mycompany.com";
Я хочу, чтобы пользователю не нужно вводить свои учетные данные для вызова операции службы. Он должен принимать от Thread.CurrentPrincipal
. Может ли кто-нибудь помочь мне в этом отношении о том, как передавать сетевые учетные данные.
Вы имеете в виду, что я должен просто удалить вышеуказанный код с моего клиента? Если да, он все равно берет учетную запись ASPNET в качестве учетных данных по умолчанию. Можете ли вы отправить сообщение в каком-то коде, чтобы помочь мне? Спасибо за ответ. – Ashish
AHA - ASP.NET - вы не упомянули об этом в своем оригинальном POST! –
Это зависит от того, как вы настроили ASP.NET - если вы подключаетесь к вашему сайту ASP.NET анонимно, вы «потеряете» свои учетные данные, и ASP.NET подключится к вашему сервису WCF со своими учетными данными. Если вы настроили проверку подлинности Windows для приложения ASP.NET (в диспетчере IIS), вы, должно быть, все в порядке. –