0

我正在开发一个将调用(广泛)WCF 服务的 ASP.NET 应用程序。现在,我显然有某种精神崩溃,因为我这辈子都无法正确地把它缠在我的头上。

我正在使用带有消息安全性和 UserName 的 ClientCredentialType 的 ws2007HttpBinding。WCF 使用 ASP.NET Membership 提供程序来验证用户的凭据。

这一切都很好,但我显然需要在调用中包含用户详细信息:

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

.... etc ...

service.Close();

现在,这在登录页面很容易,因为用户刚刚给了我们他们的用户名和密码。当我们需要使用用户凭据调用另一个服务时,我不习惯存储密码以供以后使用。

我错过了一些明显的东西吗?我已经阅读了有关令牌等的信息,但我不完全确定如何实施这种事情。我花了一整天的时间搜索和阅读,但我仍然不确定,所以您可以提供的任何帮助将不胜感激!

4

1 回答 1

1

最简单的方法可能是真正将密码存储在自定义身份中。在理想情况下,您将使用例如 Kerberos 和委托。查找有关模拟和委派的更多信息。

很不错的文章:

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

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

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

有点,亚历克斯

于 2009-07-25T13:11:02.710 回答