Ошибка создания пользователя и роли: ApplicationUser не наследует и не реализует тип ограничений IdentityUser - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь реализовать проверку подлинности на основе ролей с удостоверением asp.net, прошел через множество сайтов и учебных пособий, и я думаю, что я почти на месте, но чего-то не хватает, как показано ниже.

К вашему сведению, я изменил свой идентификационный код, чтобы все первичные ключи имели тип Integer, а не String.

С учетом сказанного, следуя некоторым учебным пособиям и примерам (например, https://code.msdn.microsoft.com/ASPNET-MVC-5-Security-And-44cbdb97), Iдобавили в мой класс Startup.vb следующий код для создания ролей администратора и пользователя:

Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.Owin
Imports Owin
Imports System.Security.Claims
<Assembly: OwinStartupAttribute(GetType(Startup))>
Partial Public Class Startup
    Public Sub Configuration(app As IAppBuilder)
        ConfigureAuth(app)
        CreateRolesandUsers()
    End Sub
    ' https://code.msdn.microsoft.com/ASPNET-MVC-5-Security-And-44cbdb97
    Private Sub CreateRolesandUsers()
        Dim context As ApplicationDbContext = New ApplicationDbContext()
        Dim roleManager = New RoleManager(Of IdentityRole)(New RoleStore(Of IdentityRole)(context))
        Dim UserManager = New UserManager(Of ApplicationUser, Integer)(New UserStore(Of ApplicationUser)(context))
        If Not roleManager.RoleExists("Admin") Then
            Dim role = New Microsoft.AspNet.Identity.EntityFramework.IdentityRole()
            role.Name = "Admin"
            roleManager.Create(role)
            Dim user = New ApplicationUser()
            user.UserName = "MyAdmin"
            user.Email = "myemail@gmail.com"
            Dim userPWD As String = "Testing@DRFFG"
            Dim chkUser = UserManager.Create(user, userPWD)
            If chkUser.Succeeded Then
                Dim result1 = UserManager.AddToRole(user.Id, "Admin")
            End If
        End If
        If Not roleManager.RoleExists("User") Then
            Dim role = New Microsoft.AspNet.Identity.EntityFramework.IdentityRole()
            role.Name = "User"
            roleManager.Create(role)
        End If
    End Sub
End Class

Ошибка в теме вызывается в следующей строке кода, особенно в части, которая у меня естьвыделено:

 Dim UserManager = New UserManager(Of ApplicationUser, Integer)(New UserStore(Of ApplicationUser)(context))

Есть идеи о том, что может быть не так?

Спасибо

...