3
我想在ASP.NET Core MVC中的cookie中存儲userId。我在哪裏可以訪問它?從核心MVC中的Cookie中的聲明中檢索用戶標識
登錄:
var claims = new List<Claim> {
new Claim(ClaimTypes.NameIdentifier, "testUserId")
};
var userIdentity = new ClaimsIdentity(claims, "webuser");
var userPrincipal = new ClaimsPrincipal(userIdentity);
HttpContext.Authentication.SignInAsync("Cookie", userPrincipal,
new AuthenticationProperties
{
AllowRefresh = false
});
註銷:
User.Identity.GetUserId(); // <-- 'GetUserId()' doesn't exists!?
ClaimsPrincipal user = User;
var userName = user.Identity.Name; // <-- Is null.
HttpContext.Authentication.SignOutAsync("Cookie");
有可能在MVC 5 ------------------ - >
登錄:
// Create User Cookie
var claims = new List<Claim>{
new Claim(ClaimTypes.NameIdentifier, webUser.Sid)
};
var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignIn(
new AuthenticationProperties
{
AllowRefresh = true // TODO
},
new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie)
);
獲取用戶名:
public ActionResult TestUserId()
{
IPrincipal iPrincipalUser = User;
var userId = User.Identity.GetUserId(); // <-- Working
}
更新 - 這是空-------
userId
索賠的新增截圖也null
。
以後將測試。但我很確定我嘗試了「User.Claims」,它們是「null」。我不知道爲什麼:) – radbyx
它也是空的。我確定你的路線是正確的,但是我必須需要別的東西。像StartUp.cs中的某些東西,我還沒有添加。 ASP.NET Core MVC對於我來說是新手,所以我可能沒有添加所有必要的依賴關係,因爲要求工作。 – radbyx
查看已添加屏幕截圖:) – radbyx