在我们的 .NET Core Web API 中,我们已经配置了基于声明的授权并且它完美地工作。我们创建了角色声明并将角色分配给用户。我们不使用用户声明。
现在我有一个要求让用户有一个特定的要求。在 UserManager 中有一个方法 GetUsersByClaimAsync(Claim),它似乎只考虑用户声明。不是角色声明。所以在我的情况下,它不可用。
所以我想通过声明获取角色,然后通过角色获取用户(效率不高,因为它必须进行多次数据库调用才能分别获取每个角色的用户)。但即使这样做,也没有直接的方法可以通过 UserManager 或 RoleManager 中的声明来获取角色。
所以对我来说,除了自定义查询之外,似乎没有干净的方法可以实现这一点。
我不确定我在这里遗漏了什么。有没有人使用更好的方法实现了这一目标?
谢谢
c# claims-based-identity asp.net-identity asp.net-core claims-authentication
我有一个简单的 ASP.Net Web-APP,使用 Azure AD 和角色/声明身份验证/授权。基本上,应用程序会检查用户的 IsinRole(),然后根据返回的内容,他可以访问网络应用程序的区域。我们在 Azure AD 中使用安全组。这里的场景是用户属于 Group1,登录网络应用程序后他可以访问 Group1 区域,现在后端管理员将用户添加到 Group2,我们想要的是用户无需注销并重新登录门户我们希望他的令牌也包含这个新添加的 Group2。无论如何,是否可以刷新令牌,为该用户令牌添加额外的 group2,而无需他注销并进入应用程序?
有什么办法可以用新信息强制刷新令牌吗?
感谢你的帮助。
谢谢。
ASP.NET Core 3.1/5 Identity 是否使用会话进行身份验证?我知道它使用 cookie 在客户端计算机上存储用户信息以供下一个请求,但我不明白的是,只有 cookie 就足够了,还是它还在服务器上为此身份验证 cookie 创建了任何会话?
asp.net-mvc asp.net-identity asp.net-core claims-authentication
我正在使用此包github.com/dgrijalva/jwt-go/v4在登录函数中设置声明:
now := time.Now()
claims := &jwt.StandardClaims{
Issuer: "Test",
ExpiresAt: now.Add(time.Hour * 24).Unix(),
}
Run Code Online (Sandbox Code Playgroud)
IDE 不断告诉我:
无法使用 'now.Add(time.Hour * 24).Unix()' (类型 int64)作为Time类型。
我读到,因为我输入了错误的值,但是,在我在网上看到的所有示例中,这正是大多数人的设置方式。
我仍在学习 go,所以我不确定将此时间格式转换为有效格式的正确方法。