簡體   English   中英

ASP.NET Core Identity - 如何在初始登錄后添加新聲明

[英]ASP.NET Core Identity - How to add new claims after initial login

我正在嘗試根據從數據庫查詢的某些數據在初始登錄后向身份添加新聲明。 我添加的新聲明不會持續用於后續請求。

這就是我在 ASP.NET MVC 中設置/添加聲明的方式

public static void UpdateClaim(IPrincipal principal, string key, string value)
        {
            var identity = principal.Identity as ClaimsIdentity;
            if (identity == null)
                return;

            // check for existing claim and remove it
            var existingClaim = identity.FindFirst(key);
            if (existingClaim != null)
                identity.RemoveClaim(existingClaim);

            // add new claim
            identity.AddClaim(new Claim(key, value));
            var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
            authenticationManager.AuthenticationResponseGrant = new AuthenticationResponseGrant(new ClaimsPrincipal(identity), new AuthenticationProperties() { IsPersistent = true });
        }

ASP.NET Core 2.0 中是否有類似的方法來保留新添加的聲明。 感謝您對此的任何想法。

聲明持續存在,但僅在登錄時加載。如果您更改聲明或角色等內容,您必須注銷用戶,然后自動重新登錄或提示他們重新進行身份驗證以更新聲明。

如果您只是在 asp 核心中的 Claims 標識對象中添加聲明,則聲明不會持續存在,您將不得不使用 iClaimsTransformation 或 ClaimAction,

暫無
暫無

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

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