How to impersonate declaratively in WCF
Jason Taylor, Prashant Bansode, Carlos Farre, Madhu Sundararajan, Steve Gregersen
Use the OperationBehavior
attribute to impersonate declaratively. There are two options for declarative impersonation:
Impersonating on specific operations
- Impersonating on specific operations**
- Impersonating on the entire service
Use this option when you want to impersonate the original caller for the entire duration of specific operation. You can impersonate declaratively by applying the
attribute on any operation that requires client impersonation, as shown in the following code example.
[*OperationBehavior*(Impersonation = ImpersonationOption.*Required*)]
public string GetData(int value)
Impersonating on the entire service
Use this option when you want to impersonate the original caller for entire duration of all the operations. For impersonating the entire service set the
impersonateCallerForAllOperations attribute to "true"
in the WCF configuration file, as shown in the following example.
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceAuthorization *impersonateCallerForAllOperations="true"* />
When impersonating for all operations, the Impersonation
property of the
applied to each method must also be set to either