我有一个asp.net mvc 2 Web应用程序,它连接到IIS中托管的WCF Web服务。这是在使用Windows身份验证的Intranet环境中。我需要验证连接到我的WCF服务内部的Web应用程序的用户,但是WCF无法看到谁连接到Web应用程序。
这不是一个新问题,那么你们有些人如何解决这个问题呢?
答案 0 :(得分:1)
请查看以下链接中的一些Intranet应用程序方案:
以下Intranet方案提供了您可能会觉得有用的安全配置指南和清单:
Chapter 9 - Intranet - Web to Remote WCF Using Transport Security (Original Caller, TCP)
Chapter 10 - Intranet – Web to Remote WCF Using Transport Security (Trusted Subsystem, HTTP)
Chapter 11 - Intranet – Web to Remote WCF Using Transport Security (Trusted Subsystem, TCP)
Chapter 12 - Intranet – Windows Forms to Remote WCF Using Transport Security (Original Caller, TCP)
答案 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服务。