WCF Service-Impersonation
Guten Tag An Alle...
Offenbar bin ich nicht die Einstellung-bis-Identitätswechsel richtig für mein WCF-Dienst. Ich will NICHT, um Sicherheit auf eine Methode-durch-Methode basis (in den tatsächlichen code-behind). Der service (im moment) offen ist, genannt zu werden, indem jeder im intranet.
Also meine Fragen sind...
Q: Was web-config-tags bin ich?
Q: Was muss ich ändern in der web-config, um den Identitätswechsel zu arbeiten?
Die Service-Web -.config Sieht aus Wie...
<configuration>
<system.web>
<authorization>
<allow users="?"/>
</authorization>
<authentication mode="Windows"/>
<identity impersonate="true" userName="MyDomain\MyUser" password="MyPassword"/>
</system.web>
<system.serviceModel>
<services>
<service behaviorConfiguration="wcfFISH.DataServiceBehavior" name="wcfFISH.DataService">
<endpoint address="" binding="wsHttpBinding" contract="wcfFISH.IFishData">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="wcfFISH.DataServiceBehavior">
<serviceMetadata httpGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen immer, um die Identität des client, für alle Operationen, dann fügen Sie den folgenden, um die
<behavior>
element, D. H. nach der<serviceMetadata>
element:Werden, wenn Sie versuchen zu imitieren, an der Anwendung Ebene, dann ist Sie normalerweise nicht tun können, diese in der WCF, da WCF ist nicht wirklich Teil der ASP.NET pipeline.
Die einfachste Lösung ist, nur um setzen Sie die WCF-Anwendung in einem eigenen Anwendungspool und den Prozess der Identität des Pools, den Benutzer, den Sie imitieren möchten.
Die andere Möglichkeit ist, schalten Sie ASP.NET Kompatibilität-Modus, das hinzufügen dieser zu
<system.servicemodel>
:Man sich auch mal schmücken Sie Ihren service mit:
Aber Bedenken, dass dies zu begrenzen Ihre Fähigkeit, die Vorteile der vielen anderen neueren WCF-features wie MSMQ-oder TCP-Bindungen. Ich bevorzuge die getrennt-app-pool-Ansatz.