问题标签 [current-principal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Thread.CurrentPrincipal.Identity 与 HttpContext.User.Identity
可能重复:
http.context.user 和 thread.currentprincipal 之间的区别以及何时使用它们?
这两者在 ASP.NET 应用程序中有什么区别?
我知道HttpContext.User.Identity
当用户通过身份验证时设置FormsAuthentication
。但是什么时候出Thread.CurrentPrincipal.Identity
集呢?
它们总是保持相同的值吗?
对于无法访问 a 的应用程序的其他层,这仍然适用HttpContext
吗?
.net - 在 .NET 中,System.Threading.Thread.CurrentPrincipal 没有更新
在调试一些 .NET 代码时,我在这里遗漏了一些基本的东西:
在这段代码中,一切似乎都在愉快地进行。但是......当我调试并且就在最后一行之前,我正在查看 System.Threading.Thread.CurrentPrincipal。该值是一个 WebSessionStore 对象,这是我所期望的,我认为最后一行应该将它更改为一个 ServiceSessionStore 对象。但事实并非如此。我可以查看 serviceSessionStore,它持有一个 ServiceSessionStore 对象,但在行运行后 CurrentPrincipal 仍然包含一个 WebSessionStore 对象。没有错误被抛出。
现在,除了这些对象的实际作用之外,有人可以提供一个关于为什么它似乎拒绝更新 CurrentPrincipal 的想法吗?
asp.net - 为什么打开模拟时 Thread.CurrentPrincipal.Identity 和 WindowsIdentity.GetCurrent() 不同?
我启用了模拟和 Windows 身份验证。
但Thread.CurrentPrincipal.Identity.Name
返回经过身份验证的用户的名称并WindowsIdentity.GetCurrent()
返回模拟身份。
这些身份不应该是一样的吗?
在这种情况下,代码在哪些凭据下运行?
c# - 在 .NET 中,System.Threading.Thread.CurrentPrincipal 对于不同的线程是相同的
我正在寻找一些通用方法来为不同的用户在服务器端存储我的 JWT 令牌。我决定将这些数据存储在 Thread.CurrentPrincipal 中。但是当我测试它时,我看到不同的客户端可以访问同一个线程。
模拟几个客户端,访问我测试过的 wcf 服务:
并测试了服务的方法:
我不明白,为什么会抛出 FaultException。谢谢。
async-await - 安全性、Thread.CurrentPrincipal 和 ConfigureAwait(false)
在使用 ConfigureAwait(false) 的引用库中使用 Thread.CurrentPrincipal 的声明会造成任何问题,还是 ExecutionContext 的逻辑调用上下文的流动会在那里照顾我?(到目前为止,我的阅读和测试表明它会)。
示例 WebAPI 控制器操作:
来自外部引用库的示例加载函数:
此外,答案不能是“那么不要使用 ConfigureAwait(false)!”。这可能会导致其他问题,例如死锁(不要阻塞异步代码)。
c# - Thread.CurrentPrincipal 被重置为默认的 GenericPrincipal
在初始化我的应用程序期间,我设置了System.Threading.Thread.CurrentPrincial
. 但是在应用程序初始化并且我想访问这个 Principal 之后,CurrentPrincipal 再次包含默认的 GenericPrincipal。
有人知道我为什么会出现这种行为吗?以及如何在应用程序初始化后设置 Principal 以访问它。
以下示例演示了该行为:
MainWindow.xaml:
MainWindow.xaml.cs:
在我的真实项目中,我Thread.CurrentPrincipal
在 Bootstrapper 中设置了属性。
asp.net-mvc - Thread.CurrentPrincipal 在升级到 .NET 4.5.1 后丢失
我试图研究这个错误,但我没有找到任何有用的信息。我们有一个使用 .Net 4 的 ASP.NET Web Api 1.0 应用程序。我们将其升级到 .Net 4.5.1、MVC 5、Web Api 2 并发现我们将用户分配给 Thread.CurrentPrincipal 的问题[Authorize] 属性并稍后尝试提取该信息,但现在升级后,Thread.CurrentPrincipal 丢失了。
以前在我们的控制器代码中,我们能够提取 Thread.CurrentPrincipal 并将其设置为 Generic Principal。但是现在我们升级后 Thread.CurrentPrincipal 丢失了。
一种解决方法是将通用主体设置为 HTTPContext.User,这似乎已正确传递给我们的控制器代码,但我读过 Thread.CurrentPrincipal 是您应该用于 Web Api 的。
任何帮助,将不胜感激。
c# - CurrentPrincipal.Identity.Name 为空
我正在尝试使用System.Threading.Thread.CurrentPrincipal.Identity.Name
来获取谁在使用 ASP.NET 应用程序的登录信息。我没有收到任何构建错误,但它返回一个空白值。我正在使用 IIS 6,这是我的身份验证设置:
- 匿名身份验证:已禁用
- ASP.NET 模拟:已禁用
- 基本身份验证:已启用
- Windows 身份验证:已启用
我的Web.config
文件中也没有授权设置。这是我用来尝试登录的方法:
我有一个断点来检查值,它说login = ""
。
我怎样才能获得登录信息?
编辑
这是我的认证图片:
c# - 为什么 Thread.CurrentPrincipal.Identity.IsAuthenticated 总是假的?
我有这个 WCF 服务,我正在尝试在其中应用身份验证和授权机制。
这是我第一次这样做,我所拥有的是该serviceModel
服务的 web.config 标记:
我想做的很简单,我不知道我是否需要我正在尝试的所有这些标签。我想要做的是从客户端为服务添加引用并首先调用MyLogin
:
然后调用另一个受限方法并让它成为GetData
:
在Login
方法的服务端,仅出于测试目的,我这样做:
受限制的方法将是:
我在服务和客户方面所拥有的一切,我缺少什么?每次,在调试中,我都会检查我发现equalsThread.CurrentPrincipal
的方法,但即使当客户端调用该方法时它也是. PS:我正在使用控制台应用程序进行测试,这有什么不同吗?
谢谢Login
Thread.CurrentPrincipal.Identity.IsAuthenticated
true
GetData()
Access Denied
c# - 使用自定义 Principal 时应该在哪里设置 Thread.CurrentPrincipal 和 HttpContext.Current.User
我创建了一个自定义类,它继承自IPrincipal
并希望确保将此对象添加到Thread.CurrentPrincipal
andHttpContext.Current.User
而不是ClaimsPrincipal
对象。这适用于 Web api 应用程序。
我希望在用户成功请求访问令牌后发生这种情况。这应该发生在生命周期的哪个位置?
在调用 /Token 以获取 access_token 后,我将不记名令牌连同必要的参数一起传递回 ChangePassword 操作,并且 User 仍设置为 ClaimsPrincipal。有没有办法确保在提出请求后和设置 ClaimsPrincipal 后立即设置 Principal?