RemoveClaimAsync 身份 2.2

RemoveClaimAsync Identity 2.2

我对 Identity 2.0 有疑问。我正在尝试更新对用户的声明。所以这是我的代码。

            var UserID = User.Identity.GetUserId();
            var claims = await UserManager.GetClaimsAsync(UserID);

            var displayName = claims.FirstOrDefault(i => i.Type == "DisplayName");
            var isPublic = claims.FirstOrDefault(i => i.Type == "IsPublic");

            if (displayName != null)
                await UserManager.RemoveClaimAsync(UserID, displayName);
            if (isPublic != null)
                await UserManager.RemoveClaimAsync(UserID, isPublic);

            await UserManager.AddClaimAsync(UserID, nClaim("DisplayName", model.DisplayName));
            await UserManager.AddClaimAsync(UserID, nClaim("IsPublic", model.IsPublic.ToString()));

http://prntscr.com/6azxr5 这就是我得到的。有人知道吗?

谢谢。

这是由已知错误引起的,该错误已在 ASP.Net 身份版本 2.1.1 中修复 https://aspnetidentity.codeplex.com/workitem/2509 遗憾的是,nuget.org 仍未提供 2.1.1 版,但同时您可以从此处下载:https://www.myget.org/gallery/aspnetwebstacknightly 下载后转到 visual studio 中的 nuget 配置,并将下载包的文件夹添加为新源。 希望对你有帮助