2009-07-24 3 views
0

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

Я использую ws2007HttpBinding с защитой сообщений и ClientCredentialType для UserName. WCF использует поставщик членства ASP.NET для проверки учетных данных пользователя.

Это все работает отлично, но я, очевидно, необходимо включить пользовательские данные в постоянно называют:

var service = new MyService.MyServiceClient(); 
service.ClientCredentials.UserName.UserName = "my_username"; 
service.ClientCredentials.UserNane.Password = "mypassword"; 

.... etc ... 

service.Close(); 

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

Я пропустил что-то очевидное? Я читал о токенах и т. Д., Но я не совсем уверен, как это осуществить. Я весь день искал и читал, и я все еще не уверен, поэтому любая помощь, которую вы можете дать, будет очень благодарна!

ответ

1

Самый простой способ - это, действительно, сохранить пароль в пользовательском отступе. В идеальном мире вы бы использовали, например, Kerberos и делегации. Найдите дополнительную информацию о олицетворении и делегировании.

Очень хорошая статья:

http://msdn.microsoft.com/en-us/library/ms998358.aspx#paght000025_usingimpersonation

Но все эти вещи не работает с поставщиком членства. Вам нужна проверка подлинности Windows с помощью Active Directory.

Этот вопрос не слишком простой ... как идея: действительно ли вам нужно пройти аутентификацию в веб-службе с учетными данными интерактивно зарегистрированного пользователя?

НТН немного, Alex

+0

Да вы правы, думая об этом больше не нужно называть службу с их учетными данными все время – Wayne

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