我正在为我们的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应用程序处理。
我对此做了一个解决方法,直接执行内置的存储过程,但我很好奇如何以编程方式解决这个问题。
你会在app.config中放什么?通常,提供程序驻留在web.config的system.web部分中。 – 2009-11-16 15:24:54
试试这个http://www.theproblemsolver.nl/usingthemembershipproviderinwinforms.htm 只需在app.config中添加membershipprovider,就像在web.config中的web应用程序中所做的那样。 – nWorx 2009-11-16 16:25:06
非常好。这解决了它。我不知道控制台应用程序关心的是system.web-config部分,但事实证明这很容易。 – 2009-11-17 14:30:53