2009-07-24 106 views
0

我正在开发一个将调用(广泛)WCF服务的ASP.NET应用程序。现在,我显然有一种心理融化,因为我无法为了我的生活而正确地缠住我的头。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

但所有这些东西不符合成员资格提供工作。您需要使用Active Directory进行Windows身份验证。

这个主题不是太简单......就像一个想法:你是否真的需要使用交互登录用户的凭据在Web服务上进行身份验证?

HTH了一下, 亚历

+0

是的,你是对的,想更我并不需要被调用他们的凭据服务所有的时间 – Wayne 2009-07-27 21:55:13