簡體   English   中英

ASP.Net MVC訪問JWT聲明內部視圖

[英]ASP.Net MVC access JWT claims inside view

我已經用我的Asp.Net Web API正確實現了JWT身份驗證。 但是,我不確定如何將其與我的MVC應用程序一起使用。 讓我向您解釋我之前是如何做到的。 用戶登錄后,我將用戶保存在會話中。

// Add user to session
Session["User"] = MyUser;

在我看來,我確實是這樣同意的:

@{
    var user = (User)Session["User"];
}
<h2>Welcome</h2>
<h4>@user.FirstName @user.LastName</h4>

現在,我更改了它,一旦用戶這樣登錄,就將JWT令牌保存在cookie中:

HttpCookie UserCookie = new HttpCookie("UserCookie");
UserCookie.Value = JWTToken;
UserCookie.Expires = DateTime.Now.AddHours(24);

我的JWT令牌具有多個聲明,我希望像在會話之前一樣在視圖中訪問它們。 那怎么可能? 有人會建議其他方式嗎?

您可以像這樣在控制器中訪問它們

var claimsPrincipal= (ClaimsPrincipal)Thread.CurrentPrincipal;
// Get the claims values
string value = claimsPrincipal.Claims.Where(c => c.Type == "your key").Select(c => c.Value).SingleOrDefault();

然后將它們傳遞給您

別忘了更新您的using

using System.Security.Claims;
using System.Threading;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM