表 ASP.NET 中未aspnet_UsersInRole生成条目

本文关键字:UsersInRole ASP NET 中未 aspnet | 更新日期: 2023-09-27 18:36:17

我在 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中不存在任何条目。

表 ASP.NET 中未aspnet_UsersInRole生成条目

检查您是否在 web.config 中启用了角色,请使用正确的连接更正字符串名称

<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>

如果需要 DropDownList 的选定值,则需要使用 SelectedValue。

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

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