static UserCredentials GetUser(string name)
{
lock (Sync)
{
try
{
if (_users == null)
{
WebLogger.Report(string.Format("Reading user credentials from '{0}'", CredentialsFileName));
var text = File.ReadAllText(CredentialsFileName);
_users = new Dictionary<string, UserCredentials>();
var lines = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
var parts = line.Split('\t');
if (parts.Length == 3)
{
var user = new UserCredentials
{
Name = parts[0],
Salt = Encoding.Unicode.GetString(Convert.FromBase64String(parts[1])),
PasswordHash = parts[2],
};
_users.Add(user.Name, user);
}
}
var userNames = _users.Keys.ToArray();
WebLogger.Report(string.Format("Found users '{0}'", String.Join(" ", userNames)));
}
}
catch (Exception exc)
{
WebLogger.Report(exc);
}
if (_users == null)
return null;
UserCredentials res;
if (!_users.TryGetValue(name, out res))
WebLogger.Report(string.Format("User '{0}' not found", name));
return res;
}
}