来自ASP.Net Web应用程序的WCF对Web用户进行身份验证的最佳方法是什么?

时间:2010-07-07 13:43:42

标签: asp.net wcf iis authentication

我有一个asp.net mvc 2 Web应用程序,它连接到IIS中托管的WCF Web服务。这是在使用Windows身份验证的Intranet环境中。我需要验证连接到我的WCF服务内部的Web应用程序的用户,但是WCF无法看到谁连接到Web应用程序。

这不是一个新问题,那么你们有些人如何解决这个问题呢?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

共享会话是一个选项吗?

WCF提供了一个属性(AspNetCompatibilityRequirements)(可能在其他方面)使得会话状态ASP.net兼容。这反过来允许您使用可在应用程序之间共享的进程外会话状态管理。

您可以使用

启用此功能
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed]

然后在你的配置中

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    ...
</system.serviceModel>

如果你使用SQL Server路由,我前一段时间写了this。它是在asp.net和asmx服务之间共享,但在SQL Server方面我想象事情是一样的。基本上,您需要使SQL Server将系统的两个部分识别为同一个应用程序。

WCF也使用与ASP.net相同的成员资格提供程序,因此您可以通过这种方式获得一些东西。

答案 2 :(得分:0)

如果您使用的是Windows身份验证,则一个选项可能是使用委派将呼叫者的身份从Web应用程序传递到WCF服务。