Ich musste aktuelle angemeldete Benutzer-ID in Controller verwenden. Es gibt immer null zurück. Ich bin bereits angemeldet. Hier ist mein Code.User.Identity.GetUserId() gibt immer Null in Controller-Aktion
if (string.IsNullOrEmpty(userId)) userId = User.Identity.GetUserId();
Ich habe versucht, den Referenz Zugabe
using Microsoft.AspNet.Identity;
Ich habe auch versucht, einen Anspruch Zugabe
public const string UserId = "http://schemas.xmlsoap.org/ws/2014/03/mystuff/claims/UserId";
userIdentity.AddClaim(new Claim(CustomClaimTypes.UserId, Id));
Wenn ich versuche, den Anspruch zu holen, gibt es auch null.
(identity as ClaimsIdentity).FirstOrNull(CustomClaimTypes.UserId);
Jede Hilfe wäre willkommen.
Zusätzliche Informationen in den Kommentaren angefordert:
Es ist die normale Anmeldung von aspnetuser zur Verfügung gestellt.
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
Request.IsAuthenticated gibt wahr zurück.
Ansprüche hinzugefügt hier.
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
userIdentity.AddClaim(new Claim(CustomClaimTypes.UserId, Id));
return userIdentity;
}
Wie melden Sie sich an? – trailmax
Bearbeitete meine Frage mit Anmeldeinformationen. –
Wenn Sie Request.IsAuthenticated testen gibt das wahr oder falsch zurück? –