【发布时间】:2016-01-04 13:10:42
【问题描述】:
- Web 表单项目/VB/ASP 4.5.2/VS2015
- EntityFramework 6.1.3 / Identity.EntityFramework 2.2.1
- NuGet 中的其他包都显示当前版本
我有一个使用 VS 模板的 webapp,其中包括创建用户的页面等。我已经创建了用户,他们可以/不能根据各个文件夹中的 web.config 访问文件夹。
现在我需要添加角色并将角色附加到用户。
我可以使用
创建角色 Dim createRole As String = RoleTextBox.Text
Dim RoleManager = New RoleManager(Of IdentityRole)(New RoleStore(Of IdentityRole)(New ApplicationDbContext()))
Try
If RoleManager.RoleExists(createRole) Then
Msg.Text = "Role '" & Server.HtmlEncode(createRole) & "' already exists. Please specify a different role name."
Return
End If
RoleManager.Create(New IdentityRole(createRole))
等
接下来我需要将角色附加到我已经得到的用户:
Public Class admin_superadmin
Inherits System.Web.UI.Page
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim UserManager = New UserManager(Of IdentityUser)(New UserStore(Of IdentityUser)(New IdentityDbContext()))
UserManager.AddToRole(DropDownList5.SelectedValue, DropDownList6.SelectedValue)
Label1.Text = DropDownList5.SelectedItem.Text + " Was added to the " + DropDownList6.SelectedValue + " Role."
End Sub
但是,当运行时,usermanager.addtorole 行会失败,并显示以下消息: System.InvalidOperationException:找不到用户 ID。
数据库表是由应用程序创建的。在表 AspNetUserRoles 中是字段 UserID、RoleID。
如果有人可以帮助确定问题,我们将不胜感激。
【问题讨论】:
标签: asp.net vb.net entity-framework