WCF как пробросить аутентификацию?
От: Аноним  
Дата: 30.05.08 12:42
Оценка:
Есть приложение(ASP.NET), в котором пользователь аутентифицируется через membership, далее вызывается WCF-сервис, который тоже идентифицирует пользователя с помощью membership, для этого надо в Credentials указать имя и пароль пользователя, а пароль то я не знаю(используется AspNetMembership с кешированием паролей).

Вообщем как вызвать WCF-сервис от имени уже аутентифицированного клиента, т.е как то пробросить аутентификацию?
wcf asp.net security
Re: WCF как пробросить аутентификацию?
От: stump http://stump-workshop.blogspot.com/
Дата: 30.05.08 13:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть приложение(ASP.NET), в котором пользователь аутентифицируется через membership, далее вызывается WCF-сервис, который тоже идентифицирует пользователя с помощью membership, для этого надо в Credentials указать имя и пароль пользователя, а пароль то я не знаю(используется AspNetMembership с кешированием паролей).


А>Вообщем как вызвать WCF-сервис от имени уже аутентифицированного клиента, т.е как то пробросить аутентификацию?

Я знаю только один способ: Kerberos Delegation. Но с тем способом аутентификации, который используете вы, он не поддерживается.
Понедельник начинается в субботу
Re[2]: WCF как пробросить аутентификацию?
От: Аноним  
Дата: 02.06.08 07:05
Оценка:
ага, я тоже про нее слышал, но да он не подходит, по условию задачи только мембершип
Re: WCF как пробросить аутентификацию?
От: Tigra http://tigra-mgc.hotbox.ru
Дата: 02.06.08 08:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть приложение(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 прокси.
Tigra
Re: WCF как пробросить аутентификацию?
От: Tigra http://tigra-mgc.hotbox.ru
Дата: 02.06.08 09:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть приложение(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>


насколько я понял это для WCF Authentication Service, т.е. немного не то.


зато я нашел вот эту статейку, тут используется примерно такой же подход к которому я сам и пришел:

сервис доверяет приложению(для проверки подлинности используется сертификат), а пользователь идентифицируется только по имени.

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