title: Best way to return various results from login wcf service
body: <pre><code>string Authenticate(string username, string password);
  </code></pre>
  
  <p>Give a simple authenticate method that takes in a username and password and returns a token if successful, I need to be able cope cope with various failure situations including - invalid credentials, locked account, awaiting verification etc.</p>
  
  <p>What is the best way to go about this?</p>
  
  <p>I was thinking about either of the two options below but am open to anything else: </p>
  
  <p>(1) changing response to an object with an enum as well as the token. A bit worried with regard to versioning with this method though.</p>
  
  <p>(2) faultcontracts for each of the failure cases. Not sure about performance here though.</p>