http://blogs.msdn.com/drnick/archive/2007/03/23/preventing-anonymous-access.aspxWCF的wsHttpBinding和禁用匿名訪問
有人可以澄清是否有可能在WCF使用的wsHttpBinding和禁用IIS匿名訪問,而運輸(SSL)或消息安全被要求?
http://blogs.msdn.com/drnick/archive/2007/03/23/preventing-anonymous-access.aspxWCF的wsHttpBinding和禁用匿名訪問
有人可以澄清是否有可能在WCF使用的wsHttpBinding和禁用IIS匿名訪問,而運輸(SSL)或消息安全被要求?
我們要使用windows集成安全性。如果您在IIS中禁用匿名訪問並僅允許Windows,則您似乎無法使用wsHttpBinding和WCF,而無需使用某種安全模式(例如需要ssl的transprot安全性)。
我們只想使用Windows身份驗證,我們不一定希望使用SSL來傳輸安全性。
我有點驚訝,這是不可能的(這似乎是由我的鏈接確認),因爲它似乎是一個實習生應用程序的常見情況。
我們不想降級到僅支持Windows身份驗證的basicHttpBinding。
你是對的,afaik在你描述的場景中wsHttpBinding要求我們使用內部的WCF安全堆棧。所以,你通常會做的是
這是一個可以接受的解決方案嗎?或者還有其他的東西可以共同使用嗎? nsider?
基本實施例:
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>