从控制台应用程序以编程方式设置角色

时间:2009-11-12 10:21:55

标签: c# .net roleprovider

我正在为我们的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);
}
...

问题在于,在运行时,我得到一个异常,说“角色管理器未激活”,这当然是正确的,因为通常角色只能从Web应用程序处理。

我已经通过直接执行内置存储过程为此做了一个解决方法,但我很好奇如何以编程方式解决这个问题。

2 个答案:

答案 0 :(得分:1)

不应该是app.config文件吗?

答案 1 :(得分:0)

好像您没有正确配置web.config中的Membership-provider。您可以发布配置中提供提供商的部分吗?