2009-11-12 40 views
0

我正在爲我們的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應用程序處理。

我對此做了一個解決方法,直接執行內置的存儲過程,但我很好奇如何以編程方式解決這個問題。

回答

1

不應該是一個app.config文件嗎?

+0

你會在app.config中放什麼?通常,提供程序駐留在web.config的system.web部分中。 – 2009-11-16 15:24:54

+1

試試這個http://www.theproblemsolver.nl/usingthemembershipproviderinwinforms.htm 只需在app.config中添加membershipprovider,就像在web.config中的web應用程序中所做的那樣。 – nWorx 2009-11-16 16:25:06

+0

非常好。這解決了它。我不知道控制檯應用程序關心的是system.web-config部分,但事實證明這很容易。 – 2009-11-17 14:30:53

0

好像你還沒有正確地在你的web.config中配置你的Membership-provider。你可以發佈提供商所在的配置部分嗎?

相關問題