我正在为我们的Web应用程序编写一个安装应用程序。其中一项任务是为内置的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);
}
...
问题是,当运行这个程序时,我得到一个异常:“RoleManager没有被激活”,这当然是正确的,因为通常角色只从Web应用程序处理。
我已经通过直接执行内置存储过程来解决这个问题,但是我很好奇如何通过编程解决这个问题。