Ausgabe
Ich versuche, den Standard Id
in AspNetUsers
von nvarchar
bis zu implementieren int
. Ich habe es geschafft, diese Seite zum Laufen zu bringen. Mein Problem ist jedoch, dass ich beim Versuch, mich anzumelden, immer wieder eine Fehlermeldung von der UserManager
Klasse erhalte.
Mein Code ist unten:
public class UserManager : UserManager<ApplicationUser, int>
{
public UserManager(IUserStore<ApplicationUser, int> store)
: base(store)
{
}
Und auf der Anmeldeseite habe ich
if (IsValid)
{
// Validate the user password
var manager = Context.GetOwinContext().GetUserManager<UserManager>();
var user = manager.Find(UserName.Text, Password.Text); //This line throws the error
if (user != null)
{
IdentityHelper.SignIn(manager, user, isPersistent: false);
Response.Redirect("~/Home.aspx"); }
else
{
FailureText.Text = "Invalid username or password.";
ErrorMessage.Visible = true;
}
}
Der Fehler, den ich immer wieder erhalte, ist System.ArgumentNullException: Value cannot be null. Parametername: manager . Ist noch jemand auf dieses Problem gestoßen? Vielen Dank im Voraus für Ihre Hilfe
Stack-Trace
[ArgumentNullException: Value cannot be null.
Parameter name: manager]
Microsoft.AspNet.Identity.UserManagerExtensions.Find(UserManager`2 manager, String userName, String password) +221
Account_Login.LogIn(Object sender, EventArgs e) in Login.aspx.cs:17
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628026
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
System.Web.UI.<ProcessRequestMainAsync>d__14.MoveNext() +5226
Lösung
Stellen Sie sicher, dass UserManager
es in Ihrem OWIN-Kontext registriert ist. Du solltest so etwas in deiner Startup
Klasse haben:
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
Stellen Sie außerdem sicher, dass Sie ein [assembly: OwinStartup(typeof(YourNamespace.Startup))]
Attribut auf Ihre Webassembly angewendet haben.
Beantwortet von – Sergey Kolodiy
Antwort geprüft von – David Marino (FixError Volunteer)