public ActionResult DoStuff() { var channelFactory = new ChannelFactory<Services.IEchoClaimsChannel>("WS2007FederationHttpBinding_IEchoClaims"); channelFactory.ConfigureChannelFactory(); channelFactory.Credentials.SupportInteractive = false; var claimsPrincipal = Thread.CurrentPrincipal as IClaimsPrincipal; var channel = channelFactory.CreateChannelActingAs(claimsPrincipal.Identities.First().BootstrapToken); var success = false; try { var result = channel.Echo(); if (channel.State != CommunicationState.Faulted) { channel.Close(); success = true; } return View(model: result); } finally { if (!success) { channel.Abort(); } } }