http://blogs.msdn.com/drnick/archive/2007/03/23/preventing-anonymous-access.aspx
有人可以澄清是否可以在WCF中使用wsHttpBinding并在IIS中禁用匿名访问而不需要传输(ssl)或消息安全性?
答案 0 :(得分:3)
你是对的,afaik在你描述的场景中wsHttpBinding要求我们使用内部WCF安全堆栈。所以你通常会做的是
这对您来说是否是可接受的解决方案还是还有其他需要考虑的事项吗?
基本示例:
public class TestService : ITestService
{
[PrincipalPermission(SecurityAction.Demand, Name = "testdomain\\administrator")]
public string DoWork()
{
return "Hello World " + Thread.CurrentPrincipal.Identity.Name;
}
}
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WcfSecurity.Www.TestServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceAuthorization principalPermissionMode="UseWindowsGroups" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="WcfSecurity.Www.TestServiceBehavior" name="WcfSecurity.Www.TestService">
<endpoint address="" binding="wsHttpBinding" contract="WcfSecurity.Www.ITestService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
答案 1 :(得分:0)
我们只想使用Windows身份验证,我们不一定要使用ssl来实现传输安全性。
我有点惊讶这是不可能的开箱即用(似乎通过我的链接确认),因为它似乎是实习应用程序的常见情况。
我们不想降级到仅支持Windows身份验证的basicHttpBinding。