public void Save()
{
SaveStore(_FileName);
}
public List<SimpleRole> GetRolesForUser(string userName)
{
List<SimpleRole> Results = new List<SimpleRole> ();
foreach (SimpleRole r in Roles)
{
if (r.AssignedUsers.Contains(userName))
Results.Add(r);
}
return Results;
}
public string[] GetUsersInRole(string roleName)
{
SimpleRole Role = GetRole(roleName);
if (Role != null)
{
string[] Results = new string[Role.AssignedUsers.Count];
Role.AssignedUsers.CopyTo(Results, 0);
return Results;
}
else
{
throw new Exception(string.Format(
"Role with name {0) does not exist!", roleName));
}
)
public SimpleRole GetRole(string roleName)
{
return Roles.Find(delegate(SimpleRole role)
{
return role.RoleName.Equals(
roleName, StringComparison.OrdinalIgnoreCase);
});
}
}
Эта реализация выглядит очень похоже нa UserStore. Главное отличие состоит в том, что она использует класс SimpleRole вместо SimpleUser и инициализирует класс XmlSerializer другим типом. Кроме того, отличается функция опроса хранилища.
Теперь классы для доступа к хранилищам готовы, а это значит, что вы можете приступить к реализации классов пользовательских поставщиков.
В этом разделе мы с вами создадим класс XmlMembershipProvider, который будет выполнять роль адаптера между пользовательским хранилищем и требованиями Membership API (код полной реализации поставщика включен в загружаемые примеры). В настоящем разделе вы пройдете через наиболее важные стадии создания поставщика Membership.
предыдущая следующая страница вначало главы оглавление
1034