Asp.net Forms (VB.NET) Идентичность + MySQL

0

Asp.net Forms (VB.NET) Identity + MySQL

Привет, я пытаюсь написать код, основанный на этом учебнике. Я хочу использовать MySql и Identity. Учебное пособие: https://docs.microsoft.com/en-us/aspnet/identity/overview/extensibility/implementing-a-custom-mysql-aspnet-identity-storage-provider

На данный момент мой код выглядит так:

Imports AspNet.Identity.MySQL
Imports Microsoft.Owin.Security
Imports Microsoft.AspNet.Identity

Public Class ApplicationUser
    Inherits IdentityUser

End Class

Public Class ApplicationDbContext
    Inherits MySQLDatabase

    Public Sub New(ByVal connectionName As String)
        MyBase.New(connectionName)
    End Sub

    Public Shared Function Create() As ApplicationDbContext
        Return New ApplicationDbContext("DefaultConnection")
    End Function
End Class


#Region "Helpers"
Public Class UserManager
    Inherits UserManager(Of ApplicationUser)
    Public Sub New()
           MyBase.New(New UserStore(Of ApplicationUser)(New ApplicationDbContext()))
    End Sub
End Class
Public Class IdentityHelper

    Public Const XsrfKey As String = "xsrfKey"

    Public Shared Sub SignIn(manager As UserManager, user As ApplicationUser, isPersistent As Boolean)
        Dim authenticationManager As IAuthenticationManager = HttpContext.Current.GetOwinContext().Authentication
        authenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie)
        Dim identity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie)
        authenticationManager.SignIn(New AuthenticationProperties() With {.IsPersistent = isPersistent}, identity)
    End Sub

    Public Const ProviderNameKey As String = "providerName"
    Public Shared Function GetProviderNameFromRequest(request As HttpRequest) As String
        Return request(ProviderNameKey)
    End Function

    Private Shared Function IsLocalUrl(url As String) As Boolean
        Return Not String.IsNullOrEmpty(url) AndAlso ((url(0) = "/"c AndAlso (url.Length = 1 OrElse (url(1) <> "/"c AndAlso url(1) <> "\"c))) OrElse (url.Length > 1 AndAlso url(0) = "~"c AndAlso url(1) = "/"c))
    End Function

    Public Shared Sub RedirectToReturnUrl(returnUrl As String, response As HttpResponse)
        If Not [String].IsNullOrEmpty(returnUrl) AndAlso IsLocalUrl(returnUrl) Then
            response.Redirect(returnUrl)
        Else
            response.Redirect("~/")
        End If
    End Sub
End Class
#End Region

Но есть ошибка (или более одного)

MyBase.New(New UserStore (из ApplicationUser) (новый ApplicationDbContext())

Я не знаю С#, и в учебнике очень сложно продолжить:

Как я могу поместить это в VB?

Большое спасибо.

Теги:
forms
identity

1 ответ

0

Попробуйте изменить его следующим образом:

MyBase.New(New UserStore(Of ApplicationUser)(TryCast(context.[Get](Of ApplicationDbContext)(), MySQLDatabase)))
  • 0
    Спасибо, но пока ничего.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню