我正在爲我們的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