我在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中没有条目。
答案 0 :(得分: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>
答案 1 :(得分:1)
如果您想要DropDownList的选定值,则需要使用SelectedValue。
Roles.AddUserToRole(CreateUserWizard1.UserName, ddlRoles.SelectedValue);
仅供参考: 请确保您已在高级版 aspnet_Roles 表中创建角色。否则,如果在 aspnet_Roles 表中找不到特定角色,则 aspnet_UsersInRole表中不会添加任何记录。