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?
Большое спасибо.
Попробуйте изменить его следующим образом:
MyBase.New(New UserStore(Of ApplicationUser)(TryCast(context.[Get](Of ApplicationDbContext)(), MySQLDatabase)))