Есть приложение(ASP.NET), в котором пользователь аутентифицируется через membership, далее вызывается WCF-сервис, который тоже идентифицирует пользователя с помощью membership, для этого надо в Credentials указать имя и пароль пользователя, а пароль то я не знаю(используется AspNetMembership с кешированием паролей).
Вообщем как вызвать WCF-сервис от имени уже аутентифицированного клиента, т.е как то пробросить аутентификацию?
Здравствуйте, Аноним, Вы писали:
А>Есть приложение(ASP.NET), в котором пользователь аутентифицируется через membership, далее вызывается WCF-сервис, который тоже идентифицирует пользователя с помощью membership, для этого надо в Credentials указать имя и пароль пользователя, а пароль то я не знаю(используется AspNetMembership с кешированием паролей).
А>Вообщем как вызвать WCF-сервис от имени уже аутентифицированного клиента, т.е как то пробросить аутентификацию?
Я знаю только один способ: Kerberos Delegation. Но с тем способом аутентификации, который используете вы, он не поддерживается.
Здравствуйте, Аноним, Вы писали:
А>Есть приложение(ASP.NET), в котором пользователь аутентифицируется через membership, далее вызывается WCF-сервис, который тоже идентифицирует пользователя с помощью membership, для этого надо в Credentials указать имя и пароль пользователя, а пароль то я не знаю(используется AspNetMembership с кешированием паролей).
А>Вообщем как вызвать WCF-сервис от имени уже аутентифицированного клиента, т.е как то пробросить аутентификацию?
У меня такая же проблема. Нормально аутетифицируюсь через Client Application Services, но как после этого обратиться в этом же контексте в WCF сервису пока не нашёл.
Есть пример на idesign
WCF lets the client provide custom credentials and have the service authenticate the client by looking up the credentials in the ASP.NET membership data base in SQL Server. Once authenticated, the service can use role-based security to authorize the user against the custom roles in the data base. The download shows how to configure both on the client and service side the certificate used to encrypt the credentials and the message body itself, and how to configure message transfer security for ASP.NET providers on the service and the client, how to configure for ASP.NET providers membership and roles, how and when to supply the application name, and additional settings required for the providers. The service also displays identity report.
Но там тоже пароль передаётся в ClientCredentials прокси.
Здравствуйте, Аноним, Вы писали:
А>Есть приложение(ASP.NET), в котором пользователь аутентифицируется через membership, далее вызывается WCF-сервис, который тоже идентифицирует пользователя с помощью membership, для этого надо в Credentials указать имя и пароль пользователя, а пароль то я не знаю(используется AspNetMembership с кешированием паролей).
А>Вообщем как вызвать WCF-сервис от имени уже аутентифицированного клиента, т.е как то пробросить аутентификацию?
Нашёл кусок кода:
ClientFormsIdentity identity =
Thread.CurrentPrincipal.Identity as ClientFormsIdentity;
//Make sure that the authentication cookies go with the web request if (identity != null)
service.CookieContainer = identity.AuthenticationCookies;
Пока не пробовал, но выглядит логично
Tigra
Re[2]: WCF как пробросить аутентификацию?
От:
Аноним
Дата:
02.06.08 13:30
Оценка:
T>Нашёл кусок кода:
T>
T> ClientFormsIdentity identity =
T> Thread.CurrentPrincipal.Identity as ClientFormsIdentity;
T> //Make sure that the authentication cookies go with the web request
T> if (identity != null)
T> service.CookieContainer = identity.AuthenticationCookies;
T>