我已经在网站上工作了一段时间了。我正在使用正常工作的成员资格、角色和个人资料提供者。
我有一个标准的 createuserwizard 控件,用户可以在其中注册。当用户注册时,我想将他添加到某个角色,如下所示:
Roles.AddUserToRole(Profile.UserName, "Member");
我通过 userCreated 事件触发器来做到这一点。
还有一个管理页面,管理员应该能够更改用户的角色,我这样做是这样的:
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 表时,我无法再按预期访问成员页面。新创建的用户没有添加到任何角色,尽管他可以看到他不应该看到的所有页面。这把我吓坏了!