0

我在 ASP.NET 中创建了一个创建用户向导,并为每个用户添加了一个额外的下拉列表角色。

我用过这个功能,

 
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
    {
        DropDownList ddlRoles = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ddlUserRoles") as DropDownList;
        Roles.AddUserToRole(CreateUserWizard1.UserName, ddlRoles.SelectedItem.ToString());

    }

这将创建一个用户并在 aspnet_user、aspnet_membership 表中创建条目,但不会在 aspnet_UsersinRole 表中创建任何条目。我加入这些表以取回所需的数据,但它没有给出所需的结果,因为对于用户而言,aspnet_UsersInRole 中不存在任何条目。

4

2 回答 2

2

检查您是否在 web.config 中启用了角色,使用正确的 connectionStringName 进行更正

<roleManager defaultProvider="DefaultRoleProvider">
  <providers>
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
  </providers>
</roleManager>
于 2013-10-21T10:42:50.640 回答
1

如果你想要 DropDownList 的选定值,你想使用SelectedValue

Roles.AddUserToRole(CreateUserWizard1.UserName, ddlRoles.SelectedValue);

仅供参考:请确保您已在aspnet_Roles表中创建了高级角色。否则,如果在aspnet_Roles表中找不到特定角色,则不会在aspnet_UsersInRole 表中添加任何记录。

于 2013-10-21T15:11:36.577 回答