草庐IT

ClaimsPrincipal

全部标签

c# - 第二个用户登录时 ContextSessionSecurityToken 被覆盖

我在单个生产环境中遇到了一个非常头疼的问题。您有两个用户,A和B。用户A登录,一切正常。用户B登录,用户B登录后,用户A现在拥有与用户B相同的安全token。我们的WIF设置相当标准,我们在token上注入(inject)了一些自定义声明,但就token的创建和存储方式(由WIF处理)而言,其他一切看起来都是标准的。感觉我可能遇到了一些我不熟悉的WIF的奇怪边缘情况更新:A和B可以在不同的机器上,也可以在同一台机器上使用不同的浏览器。请求服务时我们在哪里获取tokenif(HttpContext.Current==null)returnnull;if(HttpContext.Curre

c# - UseWindowsAzureActiveDirectoryBearerAuthentication 如何验证 token ?

我正在按照下面的GitHub示例在WebApp和WebApi中实现身份验证机制。https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet我正在为WebApp和WebApi使用单个应用程序注册,获取“https://abc.onmicrosoft.com/App”的访问token并将其传递给WebApi。我将token附加到名称为“Bearer”的HTTPSheader。我在WebApiOwinStartup类中有以下内容来验证受众和租户的token,但实际上并没有按预期验证这些token。几个问题:1.是什

c# - Asp.Net MVC 6 Cookie 身份验证 - 授权失败

我正在尝试使用CookieMiddleware创建asp.netcoremvc6应用程序验证。我的代码编译没有错误,但即使在成功登录后我也不是授权用户这是我的startup.cs配置app.UseCookieAuthentication(options=>{options.AuthenticationScheme="CookieAuth";options.LoginPath=newPathString("/Account/Login/");options.AccessDeniedPath=newPathString("/Account/Login/");options.Automati

c# - 如何在模拟 ClaimsPrincipal 中添加声明

我正在尝试对从ClaimsPrincipal.Current获取信息的Controller代码进行单元测试。在Controller代码中我publicclassHomeController{publicActionResultGetName(){returnContent(ClaimsPrincipal.Current.FindFirst("name").Value);}}我正在尝试用声明模拟我的ClaimsPrincipal,但我仍然没有从声明中获得任何模拟值。//ArrangeIListclaimCollection=newList{newClaim("name","JohnDoe

c# - 如何在模拟 ClaimsPrincipal 中添加声明

我正在尝试对从ClaimsPrincipal.Current获取信息的Controller代码进行单元测试。在Controller代码中我publicclassHomeController{publicActionResultGetName(){returnContent(ClaimsPrincipal.Current.FindFirst("name").Value);}}我正在尝试用声明模拟我的ClaimsPrincipal,但我仍然没有从声明中获得任何模拟值。//ArrangeIListclaimCollection=newList{newClaim("name","JohnDoe

c# - ClaimsPrincipal的作用是什么,为什么会有多个Identity?

我试图根据应用程序(依赖方)的声明来了解.NET背后的安全模型。我知道有两个主要类:ClaimsPrincipal-运行进程的安全上下文ClaimsIdentity-存储有关用户的信息-身份验证状态和声明问题是,ClaimsPrincipal只包含一组身份并指向当前使用的身份,但据我所知,主体通常永远不会包含超过1个身份,即使它会-用户永远不会登录2个或更多身份。ClaimsPrincipal对我来说,除了用来获取当前身份,恕我孤陋寡闻,没用。除了我所说的和关于ClaimsPrincipal类的向后兼容性之外,我还缺少什么? 最佳答案

c# - 如何从 ClaimsPrincipal 中删除现有声明?

我正在制作一个开发人员工具,用于模拟内联网站点的角色,以允许开发人员根据需要快速充当任何角色。定义的角色是Developer、TeamLead、TeamMember、Engineering、Marketing、Guest,网页上的工具调用WebApi以添加或删除Claim...好吧,我可以添加,但似乎无法找到可以访问.RemoveClaim(claim)或.TryRemoveClaim(claim)以使其正常工作的位置。我是否必须创建自定义理赔管理器才能获得此功能,还是我遗漏了什么?我一直在看System.Security.Claims几乎所有其他事情似乎都非常简单,并且没有提到需要大

c# - 如何将 SAML XML token 字符串转换为 SecurityToken 或 ClaimsPrincipal 实例?

我的背景:.NetRESTful网络服务客户(混合平台、技术、库功能)已获得SAMLtoken尝试接受token以在REST服务中进行身份验证/授权在HTTP授权/X-Authorizationheader中作为查询参数稍后还将支持SWT,但需要使用SAMLtoken详情:我在字符串中有一个SAMLtoken:..etc...在HttpModule中,我想将其转换为ClaimsPrincipal,以便我的服务可以像IClaimsPrincipal一样执行通常的Thread.CurrentPrincipal。我发现了几个诱人的页面/博客/等...看起来很有帮助:Cibrax'sIdeaf