如何在 Razor 页面中检索声明值
How retrieve the claim value inside a Razor page
我在系统记录时设置了一些声明值。
public async Task<IActionResult> Login(string txtUserName, string txtPassword)
{
string username = txtUserName;
var claims = new List<Claim>
{
new Claim("username",username)
};
}
现在我想访问 Razor 页面中的声明值。我尝试在我的 Razor 页面中使用 @((ClaimsIdentity) User.Identity).GetSpecificClaim("username")
的流动代码行进行访问,但它不起作用。
<div class="container-nav">
<a class="navbar-brand"><p>Website name</p></a>
<div class="profile">
<i class="fas fa-envelope"></i>
<a class="navbar-brand"><p>@((ClaimsIdentity)User.Identity).GetSpecificClaim("username")</p></a>
</div>
</div>
您可以在后端向 HttpContext.User
添加声明,如下所示:
public async Task<IActionResult> Login(string txtUserName, string txtPassword)
{
string username = txtUserName;
var claims = new List<Claim>
{
new Claim("username",username)
};
var appIdentity = new ClaimsIdentity(claims);
HttpContext.User.AddIdentity(appIdentity);
//....
}
然后像下面这样在前端获取声明:
@User.FindFirst("username").Value
我在系统记录时设置了一些声明值。
public async Task<IActionResult> Login(string txtUserName, string txtPassword)
{
string username = txtUserName;
var claims = new List<Claim>
{
new Claim("username",username)
};
}
现在我想访问 Razor 页面中的声明值。我尝试在我的 Razor 页面中使用 @((ClaimsIdentity) User.Identity).GetSpecificClaim("username")
的流动代码行进行访问,但它不起作用。
<div class="container-nav">
<a class="navbar-brand"><p>Website name</p></a>
<div class="profile">
<i class="fas fa-envelope"></i>
<a class="navbar-brand"><p>@((ClaimsIdentity)User.Identity).GetSpecificClaim("username")</p></a>
</div>
</div>
您可以在后端向 HttpContext.User
添加声明,如下所示:
public async Task<IActionResult> Login(string txtUserName, string txtPassword)
{
string username = txtUserName;
var claims = new List<Claim>
{
new Claim("username",username)
};
var appIdentity = new ClaimsIdentity(claims);
HttpContext.User.AddIdentity(appIdentity);
//....
}
然后像下面这样在前端获取声明:
@User.FindFirst("username").Value