WCF在Message Security中使用UserName身份验证

时间:2009-07-24 21:09:47

标签: c# wcf authorization credentials

我正在开发一个ASP.NET应用程序,它将调用(广泛地)WCF服务。现在,我显然已经有了某种精神融化,因为我无法为我的生活而正确地将它缠绕在我的头上。

我使用带有Message安全性的ws2007HttpBinding和UserName的ClientCredentialType。 WCF正在使用ASP.NET成员资格提供程序来验证用户的凭据。

这一切都运行正常但我显然需要在通话中包含用户详细信息:

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

.... etc ...

service.Close();

现在,登录页面很容易,因为用户刚给了我们他们的用户名和密码。当我们需要使用用户凭证呼叫另一项服务时,我不熟悉存储密码以供日后使用。

我错过了一些明显的东西吗?我已经读过关于令牌等但我不完全确定如何实现这种事情。我整天都在寻找和阅读,我仍然不确定,所以你们给予的任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

最简单的方法可能是将密码存储在自定义缩进中。在理想的世界中,你会使用例如Kerberos和委托。寻找有关假冒和委派的更多信息。

相当不错的文章:

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

但所有这些东西都不适用于会员提供商。您需要使用Active Directory进行Windows身份验证。

这个主题并不太容易......只是作为一个想法:您真的需要使用交互登录用户的凭据在Web服务上进行身份验证吗?

HTH有点儿, 亚历

相关问题