Skip to content

Instantly share code, notes, and snippets.

@luisrudge
Created April 25, 2014 21:33
Show Gist options
  • Save luisrudge/11304064 to your computer and use it in GitHub Desktop.
Save luisrudge/11304064 to your computer and use it in GitHub Desktop.
stateless auth for nancy
public static class Authentication {
public const string Secret = "123@123";
public static void Setup(IPipelines pipelines, Db db) {
var c = new StatelessAuthenticationConfiguration(ctx => {
var username = ctx.Request.Headers[Constants.HeaderUsername].FirstOrDefault();
var hash = ctx.Request.Headers[Constants.HeaderHash].FirstOrDefault();
if (String.IsNullOrEmpty(username)) {
return null;
}
if (String.IsNullOrEmpty(hash)) {
return null;
}
if (hash != HashUsername(username)) {
return null;
}
var user = db.Users.FirstOrDefault(u => u.Username == username);
if (user == null) {
return null;
}
return new UserIdentity {
UserName = username,
User = user.AsDTO()
};
});
StatelessAuthentication.Enable(pipelines, c);
}
public static string HashUsername(string username) {
return String.Concat(username, Secret).Md5Hash();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment