ASP.NET到WCF - 直通安全?

时间:2010-08-11 16:09:32

标签: asp.net wcf membership

我有一个位于WCF服务之上的MVC网站。使用消息安全性和证书的用户名/密码身份验证也可以访问WCF服务。这是设置和工作。

网站和服务都使用会员资格API使用相同的会员商店。

用户可以使用相同的凭据登录网站或服务。但是,当网站调用该服务时,它需要传递当前登录用户的凭据。我可以从

获取用户名
Membership.GetUser().UserName

但我无法获取密码!

是否有另一种方法可以将网站用户凭据基本上传递给服务?

任何帮助都非常感谢...

1 个答案:

答案 0 :(得分:4)

这是非常奇怪的架构。为什么要两次验证用户?只需为MVC设置不同的端点(net.pipe)并避免第二次身份验证。如果您需要知道服务上经过身份验证的用户,那么您有两个选择取决于您对MVC应用程序的信任:

  1. 将用户名作为自定义邮件标题发送。缺点:如果黑客绕过您的身份验证,她可以使用任何用户名来呼叫您的服务。
  2. 不要直接在MVC中验证用户。相反,总是在WCF中验证用户并为MVC创建自定义成员资格提供程序,它将调用身份验证服务。该服务还将为经过身份验证的用户生成令牌,每个操作都将验证该令牌。缺点:复杂性。
  3. 编辑:related post有类似问题。你可以找到另一个建议。