安全WCF服务服务器是在IIS 7使用由定义的组或用户限制窗户的认证
-
19-09-2019 - |
题
如何配置IIS 7托管启用仅定义用户/组访问的WCF服务。
现有配置:
<authentication mode="Windows"/>
<services>
<service name="MyService.Test" behaviorConfiguration="MyService.TestBehavior">
<endpoint address="" binding="wsHttpBinding" contract="MyService.ITest">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyService.TestBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
我想然后配置权限(用户或组)或者在web.config或上的文件或文件系统文件夹。
解决方案
首先,如果您在Intranet环境的时候,你可以和应该切换到NetTcpBinding的 - 它的速度更快,它更灵活,没有人可以从外部调用(超出你的防火墙) - 完美
下一步 - 您有Windows凭据默认开启用的wsHttpBinding与NetTcpBinding的。在WCF的世界里,你通常不会安全的文件或文件夹 - 你会保护什么是服务呼叫 - 而且这样做很容易与Windows凭据 - 只需添加一个属性的PrincipalPermission你的服务实现,就大功告成了:
class MyService : IMyService
{
[PrincipalPermission(SecurityAction.Demand, Role="SysAdmin")]
public void SensitiveMethod()
{
....
}
}
应该只是罚款。
如果你真的需要保护的文件和文件夹,您可以随时使用的web.config文件,并指定了基于Windows的用户名和组通常的访问权限 - 但是,没有任何与WCF,真的
马克
不隶属于 StackOverflow