Установка ролей программно из консольного приложения
Я пишу установочное приложение для нашего веб-приложения. Одной из задач является настройка базы данных для встроенного SqlRoleProvider. У меня есть свой сценарий для создания базы данных с aspnet_regsql.exe
-командой, но теперь я столкнулся с проблемами при создании программных ролей и пользовательских сопоставлений по умолчанию.
Что я хотел бы сделать:
...
private class UserRole
{
public string Username { get; set; }
public string Role { get; set; }
}
...
const string applicationName = "foo";
var roles = new List<string> { "Administrator", "Editor" };
var userRoles =
new List<UserRole>
{
new UserRole {Username = "joli", Role = "Administrator"},
new UserRole {Username = "test", Role = "Editor"}
};
Roles.ApplicationName = applicationName;
foreach (var userRole in userRoles)
{
Roles.AddUserToRole(userRole.Username, userRole.Role);
}
...
Проблема заключается в том, что при выполнении этого я получаю исключение, говорящее "Менеджер ролей не активирован", что, конечно, правильно, потому что обычно роли обрабатываются только из веб-приложения.
Я нашел обходной путь для этого, выполнив встроенные хранимые процедуры напрямую, но мне любопытно, как решить эту проблему программно.
2 ответа
Похоже, вы не правильно настроили своего членства-члена в вашем файле web.config. Можете ли вы опубликовать раздел вашей конфигурации, где указан провайдер?