Установка ролей программно из консольного приложения

Я пишу установочное приложение для нашего веб-приложения. Одной из задач является настройка базы данных для встроенного 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 ответа

Решение

Не должно быть достаточно файла app.config?

Похоже, вы не правильно настроили своего членства-члена в вашем файле web.config. Можете ли вы опубликовать раздел вашей конфигурации, где указан провайдер?

Другие вопросы по тегам