Sunday, August 15, 2010

Ignore Error From Visual Studio Post Build Event

If, for whatever reason, you want to execute a command from a Visual Studio build event, and you don't care if that command returns an error, then do the following:
[command to execute] 2>nul 1>nul
The 2>nul 1>nul will swallow the stderr and stdout from the command. The EXIT 0 will make sure the build event returns 0.

This post explains how MSBuild decides whether or not a command executed in a build event has failed. If you control the command your executing, you may be able to change how it writes to stderr and stdout and avoid swallowing those streams. If you don't control the command, you'll have to swallow.

This technique may not be helpful if your build event is more complicated. But if your situation matches this simple scenario, the technique works like a champ!

Thursday, July 8, 2010

WCF Active Federation and Bearer Tokens

If you're using WCF's WS2007FederationHttpBinding, and you want the issued token to be a Bearer token, then you need to set IssuedKeyType of the message section to Bearer.

var binding = new WS2007FederationHttpBinding();
binding.Security.Mode = WSFederationHttpSecurityMode.TransportWithMessageCredential;
binding.Security.Message.IssuedKeyType = System.IdentityModel.Tokens.SecurityKeyType.BearerKey;

The default IssuedKeyType is Symmetric, which is a holder-of-key token. I'll talk about why I needed a bearer token in a future post.