2010-09-16 1 views
0

Я создаю приложение WPF, для которого все пользователи должны быть аутентифицированы в Active Directory. - Clientside, я использую службы клиентских приложений. - На стороне сервера у меня есть веб-приложение asp.net с AspNetActiveDirectoryMembershipProvider.AspNetActiveDirectoryMembershipProvider & mixed logins

Все работает должным образом.

Однако есть один улов. Некоторые из пользователей приложения wpf входят в систему со своими окнами в домен, а другие - нет.

Так что для пользователей, которые вошли в домен (группа A), я не хочу запрашивать их имя пользователя/пароль при запуске приложения. Другие пользователи (группа B), конечно же, должны указать свое имя/пароль для Active Directory при запуске приложения. Эта группа B просто выполняет членство. ValidateUser (имя пользователя, пароль), заканчивается в AspNetActiveDirectoryMembershipProvider и проходит проверку подлинности.

Однако, как я могу проверить для группы А, что они были успешно завершены в AspNetActiveDirectoryMembershipProvider, не имея , чтобы спросить их имя пользователя/пароль?

Спасибо, Koen

ответ

0

услуги приложений использует HTTP транспорта. Не существует понятия токенов (то, что вы получаете, когда вы входите в свой компьютер/домен), поэтому, если вы не хотите полностью переписать реализацию служб приложений (не .. не ... не рекомендуется), нет способа войти в систему независимо от текущей проверки подлинности.

Но это приводит меня к вопросу: если они вошли в домен, почему вы используете сервисы приложений?

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

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

+0

Мое решение действительно проверяет, принадлежит ли оно домену, если оно не относится к приложениям. Однако, в идеале, я хотел бы сохранить логику аутентификации/авторизации за интерфейсом Application Services. Если я хочу переключиться с проверки подлинности на основе Windows, например, на основе проверки подлинности на базе базы данных, мне необходимо изменить как клиент, так и сервер. Спасибо за отзыв, Koen – KoenJ