问题标签 [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.

0 投票
2 回答
11636 浏览

c# - Thread.CurrentPrincipal.Identity 与 HttpContext.User.Identity

可能重复:
http.context.user 和 thread.currentprincipal 之间的区别以及何时使用它们?

这两者在 ASP.NET 应用程序中有什么区别?

我知道HttpContext.User.Identity当用户通过身份验证时设置FormsAuthentication。但是什么时候出Thread.CurrentPrincipal.Identity集呢?

它们总是保持相同的值吗?

对于无法访问 a 的应用程序的其他层,这仍然适用HttpContext吗?

0 投票
1 回答
854 浏览

.net - 在 .NET 中,System.Threading.Thread.CurrentPrincipal 没有更新

在调试一些 .NET 代码时,我在这里遗漏了一些基本的东西:

在这段代码中,一切似乎都在愉快地进行。但是......当我调试并且就在最后一行之前,我正在查看 System.Threading.Thread.CurrentPrincipal。该值是一个 WebSessionStore 对象,这是我所期望的,我认为最后一行应该将它更改为一个 ServiceSessionStore 对象。但事实并非如此。我可以查看 serviceSessionStore,它持有一个 ServiceSessionStore 对象,但在行运行后 CurrentPrincipal 仍然包含一个 WebSessionStore 对象。没有错误被抛出。

现在,除了这些对象的实际作用之外,有人可以提供一个关于为什么它似乎拒绝更新 CurrentPrincipal 的想法吗?

0 投票
1 回答
7427 浏览

asp.net - 为什么打开模拟时 Thread.CurrentPrincipal.Identity 和 WindowsIdentity.GetCurrent() 不同?

我启用了模拟和 Windows 身份验证。

Thread.CurrentPrincipal.Identity.Name返回经过身份验证的用户的名称并WindowsIdentity.GetCurrent()返回模拟身份。

这些身份不应该是一样的吗?

在这种情况下,代码在哪些凭据下运行?

0 投票
2 回答
4586 浏览

c# - 在 .NET 中,System.Threading.Thread.CurrentPrincipal 对于不同的线程是相同的

我正在寻找一些通用方法来为不同的用户在服务器端存储我的 JWT 令牌。我决定将这些数据存储在 Thread.CurrentPrincipal 中。但是当我测试它时,我看到不同的客户端可以访问同一个线程。

模拟几个客户端,访问我测试过的 wcf 服务:

并测试了服务的方法:

我不明白,为什么会抛出 FaultException。谢谢。

0 投票
1 回答
2519 浏览

async-await - 安全性、Thread.CurrentPrincipal 和 ConfigureAwait(false)

在使用 ConfigureAwait(false) 的引用库中使用 Thread.CurrentPrincipal 的声明会造成任何问题,还是 ExecutionContext 的逻辑调用上下文的流动会在那里照顾我?(到目前为止,我的阅读和测试表明它会)。

示例 WebAPI 控制器操作:

来自外部引用库的示例加载函数:

此外,答案不能是“那么不要使用 ConfigureAwait(false)!”。这可能会导致其他问题,例如死锁(不要阻塞异步代码)。

0 投票
1 回答
1937 浏览

c# - Thread.CurrentPrincipal 被重置为默认的 GenericPrincipal

在初始化我的应用程序期间,我设置了System.Threading.Thread.CurrentPrincial. 但是在应用程序初始化并且我想访问这个 Principal 之后,CurrentPrincipal 再次包含默认的 GenericPrincipal。

有人知道我为什么会出现这种行为吗?以及如何在应用程序初始化后设置 Principal 以访问它。

以下示例演示了该行为:

MainWindow.xaml:

MainWindow.xaml.cs:

在我的真实项目中,我Thread.CurrentPrincipal在 Bootstrapper 中设置了属性。

0 投票
0 回答
357 浏览

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 的。

任何帮助,将不胜感激。

0 投票
2 回答
10889 浏览

c# - CurrentPrincipal.Identity.Name 为空

我正在尝试使用System.Threading.Thread.CurrentPrincipal.Identity.Name来获取谁在使用 ASP.NET 应用程序的登录信息。我没有收到任何构建错误,但它返回一个空白值。我正在使用 IIS 6,这是我的身份验证设置:

  • 匿名身份验证:已禁用
  • ASP.NET 模拟:已禁用
  • 基本身份验证:已启用
  • Windows 身份验证:已启用

我的Web.config文件中也没有授权设置。这是我用来尝试登录的方法:

我有一个断点来检查值,它说login = ""

我怎样才能获得登录信息?

编辑

这是我的认证图片:在此处输入图像描述

0 投票
2 回答
3262 浏览

c# - 为什么 Thread.CurrentPrincipal.Identity.IsAuthenticated 总是假的?

我有这个 WCF 服务,我正在尝试在其中应用身份验证和授权机制。
这是我第一次这样做,我所拥有的是该serviceModel服务的 web.config 标记:

我想做的很简单,我不知道我是否需要我正在尝试的所有这些标签。我想要做的是从客户端为服务添加引用并首先调用MyLogin

然后调用另一个受限方法并让它成为GetData

Login方法的服务端,仅出于测试目的,我这样做:

受限制的方法将是:

我在服务和客户方面所拥有的一切,我缺少什么?每次,在调试中,我都会检查我发现equalsThread.CurrentPrincipal的方法,但即使当客户端调用该方法时它也是. PS:我正在使用控制台应用程序进行测试,这有什么不同吗? 谢谢LoginThread.CurrentPrincipal.Identity.IsAuthenticatedtrueGetData()Access Denied

0 投票
0 回答
680 浏览

c# - 使用自定义 Principal 时应该在哪里设置 Thread.CurrentPrincipal 和 HttpContext.Current.User

我创建了一个自定义类,它继承自IPrincipal并希望确保将此对象添加到Thread.CurrentPrincipalandHttpContext.Current.User而不是ClaimsPrincipal对象。这适用于 Web api 应用程序。

我希望在用户成功请求访问令牌后发生这种情况。这应该发生在生命周期的哪个位置?

在调用 /Token 以获取 access_token 后,我将不记名令牌连同必要的参数一起传递回 ChangePassword 操作,并且 User 仍设置为 ClaimsPrincipal。有没有办法确保在提出请求后和设置 ClaimsPrincipal 后立即设置 Principal?