1
我需要使用控制器中當前登錄的用戶ID。它總是返回null。我已經登錄了,這是我的代碼。User.Identity.GetUserId()總是在控制器操作中返回空值
if (string.IsNullOrEmpty(userId)) userId = User.Identity.GetUserId();
我試圖將基準
using Microsoft.AspNet.Identity;
我也嘗試添加一個要求
public const string UserId = "http://schemas.xmlsoap.org/ws/2014/03/mystuff/claims/UserId";
userIdentity.AddClaim(new Claim(CustomClaimTypes.UserId, Id));
當我嘗試檢索要求,它給空爲好。
(identity as ClaimsIdentity).FirstOrNull(CustomClaimTypes.UserId);
任何幫助,將不勝感激。
附加信息請求中的註釋:
這是由aspnetuser提供正常登錄。
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返回true。
索賠在這裏添加。
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;
}
您如何登錄? – trailmax
用登錄信息編輯我的問題。 –
如果測試Request.IsAuthenticated是否返回true或false? –