private void ReadMembershipDataStore()
{
lock (this)
{
if (this.users == null)
{
this.users = new Dictionary<Guid, Dictionary<string, MembershipUser>>();
}
if (!this.users.ContainsKey(Blog.CurrentInstance.Id))
{
this.users[Blog.CurrentInstance.Id] = new Dictionary<string, MembershipUser>(16, StringComparer.OrdinalIgnoreCase);
var doc = new XmlDocument();
doc.Load(XmlFullyQualifiedPath);
var nodes = doc.GetElementsByTagName("User");
foreach (var user in
nodes.Cast<XmlNode>().Select(
node => new MembershipUser(
this.Name,
// Provider name
node["UserName"].InnerText,
// Username
node["UserName"].InnerText,
// providerUserKey
node["Email"].InnerText,
// Email
string.Empty,
// passwordQuestion
node["Password"].InnerText,
// Comment
true,
// approved
false,
// isLockedOut
DateTime.Now,
// creationDate
DateTime.Parse(node["LastLoginTime"].InnerText, CultureInfo.InvariantCulture),
// lastLoginDate
DateTime.Now,
// lastActivityDate
DateTime.Now,
// lastPasswordChangedDate
new DateTime(1980, 1, 1))))
{
this.users[Blog.CurrentInstance.Id].Add(user.UserName, user);
}
}
}
}