I am using Asp.net Identity 1.0 and wish to use email addresses for 'username'.
After researching I found this post which appears to suggest a solution: AllowOnlyAlphanumericUserNames - how to set it? (RC to RTM breaking change) ASP.NET Identity
I therefore implemented the code (I'm using vb.net):
Public Class AccountController
Inherits Controller
Public Sub New()
Me.New(New UserManager(Of ApplicationUser)(New UserStore(Of ApplicationUser)(New ApplicationDbContext())))
End Sub
Public Sub New(manager As UserManager(Of ApplicationUser))
UserManager = manager
UserManager.UserValidator = New UserValidator(Of ApplicationUser)(UserManager) With {.AllowOnlyAlphanumericUserNames = False}
End Sub
Public Property UserManager As UserManager(Of ApplicationUser)
However when my code calls upon usermanager:
Dim result = Await UserManager.CreateAsync(user, acct.password)
I get an exception outside the debugger:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.Entity.Validation.DbEntityValidationException: Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
Source Error:
Dim result = Await UserManager.CreateAsync(user, acct.password) Line 294:
If result.Succeeded Then Trace.WriteLine("Succeeded creating: " + acct.username)Stack Trace:
[DbEntityValidationException: Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.]
System.Data.Entity.Internal.InternalContext.SaveChangesAsync(CancellationToken cancellationToken) +219
System.Data.Entity.Internal.LazyInternalContext.SaveChangesAsync(CancellationToken cancellationToken) +66
System.Data.Entity.DbContext.SaveChangesAsync(CancellationToken cancellationToken) +60
System.Data.Entity.DbContext.SaveChangesAsync() +63
Microsoft.AspNet.Identity.EntityFramework.d__0.MoveNext() etc
Seeing as the exception is not caught by the debugger I'm not able to see what 'EntityValidationErrors' is. However, before I inserted my uservalidator I was able to catch the standard 'non-alphanumeric not allowed' exception.
Anyone any thoughts on what I'm doing wrong? Thank you.