claims-based-identity 相关问题

用于向声明感知应用程序呈现身份的应用程序模型。此标识包含来自受信任来源的安全包中的声明元素,例如电子邮件地址或用户名。此模型将应用程序与身份验证机制分开。

System.Web.Mvc.HttpAntiForgeryException:MVC 5

使用MVC 5.1.1/VS 2013 Professional/.Net 4.5 我偶尔会收到错误(来自本地主机和生产 IIS 7): System.Web.Mvc.HttpAntiForgeryException:防伪造cookie tok...

回答 3 投票 0

AspNet Identity Core - 自定义登录声明

我正在尝试通过在数据库中添加逻辑“已删除”列来扩展我的身份用户。 然后,我想使用该值通过自定义 UserClaimsPrincipalFactory 向用户添加声明。 我想要...

回答 3 投票 0

Azure Active Directory 强制执行图形端点而不是组声明

根据文档,如果用户是 200 个或更多组的成员,则默认返回的 JWT 令牌将不包含组声明;它将包含 _claim_names 和

回答 1 投票 0

AuthorizationContext.Principal 会自动从 ClaimsPrincipal 更改为 GenericPrincipal

我不知道为什么 AuthorizationManager 中的上下文原则会发生变化。我的代码就像 公共类 AuthorizationManager :ClaimsAuthorizationManager { 公共覆盖 bool CheckAcc...

回答 2 投票 0

我应该为 OpenIdConnectOptions.SignOutScheme 设置什么?

我正在使用 .NET 6 和 Identity Server 4。 我应该为 OpenIdConnectOptions.SignOutScheme 设置什么? 这是我在 Startup.ConfigureServices() 中的内容: .AddOpenIdConnect("oidc", "

回答 0 投票 0

Request/Response中的Identity对象和Principal有什么区别?

我正在使用 .NET 6 和 Identity Server 4。 这三个 Identities 有什么区别(这是从 OpenIdConnectEvents 派生的类)? 为什么principalIdentity中有声明但没有...

回答 0 投票 0

如何获取自己的跨域ClaimsIdentity?

自 .NET 4.5 以来,身份管理通过 ClaimsPrincipal 类进行,该类具有一个 Identities 属性,该属性通常填充一个 ClaimsIdentity 代表当前活动

回答 0 投票 0

如何根据用户角色授予网站所有页面的访问权限?

我的要求是管理员用户可以授权其他用户访问站点中的页面数。 用户及其分配的页面存储在数据库中,格式如下。 Id UserId ClaimType 页面 1 ...

回答 0 投票 0

GenerateUserIdentity 在此方法中,我需要根据域名获取当前域名,我需要添加声明值。 Asp.net 4.5 框架

公共异步任务 GenerateUserIdentityAsync(UserManager 管理器) 在这种方法中,我需要在身份声明中添加域名。 这个方法从 2 p 调用...

回答 0 投票 0

使用 Microsoft.Identity.Web 的 Azure AD 登录在不同的应用程序中返回不同的声明名称

我有 2 个 Umbraco Web 应用程序在 .NET Core 6 上运行,它们都配置为使用相同的 Azure AD 应用程序注册来基于此处的代码进行后台身份验证。 作为代币的一部分

回答 0 投票 0

使用 Web 应用程序代理时 ADFS 3.0 错误事件 ID 511 和 364

我们正在尝试设置我们的开发环境,当 WAP 与 ADFS 一起使用时,我们正面临问题。以下是我们目前所拥有的。 我们的 ADFS 服务器绑定到 Active Directory 并且正在工作...

回答 2 投票 0

何时可以索赔

我在 GenerateUserIdentityAsync 方法中添加声明: 公共类 ApplicationUser : IdentityUser { 公共异步任务 GenerateUserIdentityAsync(UserManager 我在 GenerateUserIdentityAsync 方法中添加声明: public class ApplicationUser : IdentityUser { public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) { var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); userIdentity.AddClaim(new Claim(ClaimsStaticStrings.Inactivity, company.Inactivity.ToString())); return userIdentity; } } 然后我尝试在帐户/登录方法中获取它: [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { var result = await SignInManager.PasswordSignInAsync(model.Username, model.Password, model.RememberMe, shouldLockout: false); switch (result) { case SignInStatus.Success: int inactivity = Utils.GetInactivityFromIdentity(User.Identity); Response.Cookies.Add(new HttpCookie("inactivity", inactivity.ToString())); return RedirectToAction("Index", "Home"); } } public static int GetInactivityFromIdentity(IIdentity identity) { System.Security.Claims.ClaimsIdentity claims = (System.Security.Claims.ClaimsIdentity)identity; var claim = claims.FindFirst(Models.ClaimsStaticStrings.Inactivity); if (claim != null) { return int.Parse(claim.Value); } else throw new Exception("Inactivity is not set"); } 它抛出异常“Inactivity is not set”。变量 'claims' 只有一个声明 - name 但是当我从任何其他页面(重定向后)调用 GetInactivityFromIdentity 方法时 - 它工作正常(并且声明中充满了所有设置的声明)。为什么会这样? 声明被序列化到 auth-cookie 中。在您通过身份验证重新加载页面之前,不会设置 Cookie。在您尝试从 cookie 访问声明时,HTTP 请求中没有 cookie - SignInManager 只会在请求完成时设置 cookie,但不会在请求完成后立即设置。您确实需要一个重定向/页面重新加载周期来获取可用的 cookie 和声明。 您必须以某种方式获得inactivity价值,而不是通过声明,而是在您登录用户时从您的数据存储中获得。 无法访问登录用户声明的原因是登录过程中设计的事件顺序 - .Net 问题。 当您执行调用 SignInManager.SignIn() 时,事件顺序将带您完成项目的扩展类 ApplicationSignInManager,它派生自 SingInManager - 在其中您会发现一个名为 CreateUserIdentityAsync 的覆盖方法,它会被触发通过登录调用。 在这个方法中,用户身份声明被创建并返回(通过调用 GenerateUserIdentityAsync),只有在登录过程的后期才能访问它们。 这里的工作是在 ApplicationSignInManager 类中创建一个名为 AppUserClaims 的 ClaimsIdentity 类型的公共属性,并使用它来存储用户身份声明值,然后再将它们检索到登录流程。 public override Task<ClaimsIdentity> CreateUserIdentityAsync(ApplicationUser user) { var iClaims = user.GenerateUserIdentityAsync((ApplicationUserManager)UserManager); AppUserClaims = iClaims.Result; return iClaims; } 一旦你存储了这个属性的声明,回到登录方法内部,你就可以像下面这样访问它——记住声明值总是字符串类型: string YourX = SignInManager.AppUserClaims.FindFirst("YourX").Value;

回答 2 投票 0

使用 Keycloak 的 OIDC 标准声明的用户属性

我正在使用 Keycloak 作为应用程序的身份提供者。用户可以直接通过Keycloak创建账户,用户需要填写一些映射到OIDC sta的个人信息...

回答 0 投票 0

Azure AD b2c 自定义策略访问令牌在使用应用程序时每 15 米突然过期

我们在 MVC 应用程序中使用 azure AD b2c,Identity Experience Framework 自定义策略身份验证。 我们在代码中将令牌过期超时设置为 4 小时,但它仍然会在......内过期

回答 0 投票 0

如何使用 ClaimsPrincipal 从 Azure AD 获取我的 TenantId?

我的代码有点问题。我想获取我的 TenantID 但该字段为空 (null)?我如何解决它? 我在这里忘了什么吗? 公共静态字符串 GetMyTenantID(这个 ClaimsPrincipal

回答 0 投票 0

元素未显示在 UI 中:Azure AD B2C 自定义策略

我正在尝试自定义登录页面。 我的问题是以下问题。在登录页面中,我需要一个下拉菜单,以便用户可以选择首选的 MFA 方法。 但是,如您所见,那里...

回答 0 投票 0

验证服务描述符 'ServiceType: Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory`1

第一次尝试添加迁移时出现此错误。我添加了扩展方法和我的服务类 public void ConfigureServices(IServiceCollection 服务) { 服务...

回答 3 投票 0

Blazor 服务器应用程序 - 在身份验证后添加或更新声明

需要在用户登录/认证后添加或更新声明。 我们使用下面的代码来添加自定义声明,它工作正常但是当我们重新加载页面时,之前添加的声明将不可用...

回答 0 投票 0

Azure AD b2c 访问令牌在用户使用应用程序时每 15 米突然过期

我们在 MVC 应用程序中使用 azure AD、b2c 身份验证。 我们将令牌过期超时设置为 4 小时,但当用户使用该应用程序时,它仍然会在 10 到 15 分钟内过期。当...

回答 0 投票 0

在ASP.NET Core Web API中访问和使用UserClaims。

我是第一次使用ASP.NET Core Web API,对它很陌生。我已经添加了索赔,现在我想某种程度上 "读取 "并访问它们。谁能帮我解决这个问题?

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.