2012-11-17 138 views
0

我一直在網站上工作一段時間。 我正在使用正在正常工作的成員資格,角色和配置文件提供程序。將用戶添加到角色失敗

我有一個標準的createuserwizard控件,用戶可以註冊。當用戶註冊時,我想將他添加到某個角色,如下所示:

Roles.AddUserToRole(Profile.UserName, "Member"); 

我通過userCreated事件觸發器來執行此操作。

還有一個adminpage其中一個管理員應該能夠更改用戶的角色,我做的是這樣的:

DropdownList ddl = ((DropDownList)sender); 
String usr = ddl.enter code here 
if (Roles.IsUserInRole(usr, "Member")) { 
    Roles.RemoveUserFromRole(usr, "Member"); 
} 
if (Roles.IsUserInRole(usr, "Visitor")) { 
... 

switch (ddl.selectedIndex) 
    case 0: 
    Roles.AddUserToRole(usr, "Admin"); 
    case 1: 
    ... 

這也不起作用。如果我去數據庫本身,用戶不會被添加到aspnet_UserInRoles。

額外的詳細信息: 當我創建一個用戶,他可以看到的行政頁,這是不是打算。當我將用戶手動添加到aspnet_UsersInRoles表時,安全修整工作正常,我無法按預期方式到達成員頁面。 新創建的用戶不會添加到任何角色,儘管他可以看到他不應該看到的所有頁面。這嚇壞了我!

+0

您是否在web.config中啓用角色? – lboshuizen

+0

我忘了提及...用戶自動登錄(現在)。 – DerpyNerd

+0

是的,角色已啓用... 您是否想要查看我的web.config? – DerpyNerd

回答

0

好的,我解決了註冊後不會分配角色的問題。 你會認爲userCreated在用戶登錄後被調用,但它不是。 Profile.UserName導致一個空字符串!

雖然我仍然有問題的管理頁面...我從下拉列表的工具提示獲取用戶名值。通過懸停在ddl上,我可以直觀地驗證用戶名是否確實在工具提示屬性中。

假設這裏存在同樣的問題 - > usr(用戶名)字符串是空的。爲什麼我無法獲得價值?

相關問題