ReceiveActivity::OperationValidation Event

 

Occurs when a message is received for an operation and validation is required.

Namespace:   System.Workflow.Activities
Assembly:  System.WorkflowServices (in System.WorkflowServices.dll)

public:
event EventHandler<OperationValidationEventArgs^>^ OperationValidation {
	void add(EventHandler<OperationValidationEventArgs^>^ value);
	void remove(EventHandler<OperationValidationEventArgs^>^ value);
}

This is an optional event handler that is fired when the ReceiveActivity activity is about to receive a message. The associated handler can be used to perform ClaimSet-based security checks to authorize client invocation of the service operation implemented by the ReceiveActivity activity.

Setting OperationValidationEventArgs::IsValid to false in the event handler rejects the service operation invocation and the client receives a FaultException. If OperationValidationEventArgs::IsValid is set to true, then the service operation invocation succeeds and the ReceiveActivity activity receives and processes the message.

The following example shows how to use the OperationValidation event.

[System.Diagnostics.DebuggerNonUserCode]
private void InitializeComponent()
{
    ReceiveActivity receiveActivity1 = new ReceiveActivity();
    receiveActivity1.OperationValidation += new EventHandler<OperationValidationEventArgs>(receiveActivity1_OperationValidation);
}

void receiveActivity1_OperationValidation(object sender, OperationValidationEventArgs e)
{
    OperationContext context = OperationContext.Current;
    bool authorized = false;
    foreach (ClaimSet claims in context.ServiceSecurityContext.AuthorizationContext.ClaimSets)
    {
        if (claims.ContainsClaim(AuthorizedClaim))
        {
            authorized = true;
        }
    }
    e.IsValid = authorized;  
}

.NET Framework
Available since 3.5
Return to top
Show: