jjzjj

WindowsIdentity

全部标签

c# - WindowsIdentity 缺失组 - 特别是管理员组

我正在使用模拟在连接到域的Windows7计算机上实例化WindowsIdentity。我通过Groups属性取回了很多组。一些域、本地和内置但我没有得到用户所在的内置管理员组。我很困惑为什么会这样。任何帮助将不胜感激。更新:当我通过命令行运行“whoami/groups”时,我可以正确地看到我的所有组。当我使用WindowsIdentity.Groups(特别是管理员组)时,我只是遗漏了一些。如果whoamiWindows命令正确地计算出我的组,我该怎么办?我还尝试过WinAPINetUserGetGroups和NetUserGetLocalGroups,它们返回的组更少,所以这些看

c# - 如何确定用户是否具有管理员权限?

我用C#创建了一个程序,允许您更改Windows7登录屏幕的背景。程序必须在System32文件夹中创建一个新文件夹,并将一个文件移到那里。我在我的个人机器上没有问题,但我在friend的机器上测试过,它拒绝创建目录。他的帐户类型是管理员,但我唯一能想到的是他缺少我在计算机上启用的某种权限。所以我想知道是否有一种方法可以检查用户拥有哪些权限?或者绕过它的方法。提前致谢! 最佳答案 要检测到这一点,您可以像这样获取WindowsIdentity对象:WindowsIdentityidentity=WindowsIdentity.Get

c# - 异步方法调用和模拟

为什么模拟用户上下文仅在异步方法调用之前可用?我已经编写了一些代码(实际上是基于WebAPI)来检查模拟用户上下文的行为。asyncTaskTest(){varcontext=((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate();awaitTask.Delay(1);varname=WindowsIdentity.GetCurrent().Name;context.Dispose();returnname;}令我惊讶的是,在这种情况下,我会收到应用程序池用户的名称。代码在其下运行。这意味着我不再拥有模拟的用

c# - 获取当前用户 SID 的最佳方法是什么?

先决条件详细信息使用.NET2.0。代码位于一个公共(public)库中,可以从ASP.Net、Windows窗体或控制台应用程序中调用。在企业网络的Windows域中运行。问题获取当前用户SID的最佳方法是什么?我不是在谈论正在执行应用程序的身份,而是正在访问界面的用户。在后台应用程序和基于桌面的应用程序中,这应该是实际执行应用程序的身份,但在ASP.Net(没有模拟)中,这应该是HttpContext.Current.UserSID。当前方法这就是我现在所拥有的。只是好像……错了。这很讨厌。是否有更好的方法来执行此操作,或者是否有一些内置类可以为您执行此操作?publicstati

c# - 从 WindowsIdentity 和 Thread.CurrentPrincipal 检索 WindowsPrincipal 之间有什么区别?

我正在尝试弄清楚为什么基于属性的安全性在WCF中没有像我预期的那样工作,我怀疑它可能与以下内容有关:AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);varidentity=newWindowsIdentity("ksarfo");varprincipal=newWindowsPrincipal(identity);Console.WriteLine("\nCheckingwhethercurrentuser["+identity.Name+"]ismemberof["+groupN

c# - System.Security.Principal.WindowsIdentity 的这种使用是否合理安全?

是System.Security.Principal.WindowsIdentity合理地避免被黑客攻击,这样我从Thread.CurrentPrincipal得到的一个实例的Identity或WindowsIdentity.GetCurrent()其中true为IsAuthenticated提供了我的程序集虚假身份信息?当然,没有什么是完全防篡改的,但考虑到Microsoft对.Net的promise和依赖,我预计像这样的关键API将被严格锁定并且难以篡改。这对我来说是一个有效的假设吗?我的目标是在我的程序集中提供合理的最佳实践SSO。如果Windows本身受到损害,那是我无法控制的

c# - 如何从 DOMAIN\user 格式的用户名创建 WindowsIdentity/WindowsPrincipal

WindowsIdentity(string)构造函数要求用户名采用username@domain.com格式。但在我的例子中,我从旧的DOMAIN\user格式的数据库中获取用户名(然后必须检查他们的Windows角色成员身份)。从旧式(sAMAccountName)用户名​​创建WindowsPrincipal的最佳方法是什么? 最佳答案 似乎没有办法在不涉及对ActiveDirectory的查询的情况下转换用户名格式。由于是这种情况,因此无需创建WindowsPrincipal来检查组成员身份,因为这可能需要与AD的另一个连接

c# - 如何使用不同的方法获取 Windows 用户名?

在.NET中,似乎有几种获取当前Windows用户名的方法。其中三个是:stringname=WindowsIdentity.GetCurrent().Name;或stringname=Thread.CurrentPrincipal.Identity.Name;或stringname=Environment.UserName;有什么区别,为什么选择一种方法而不是另一种方法?还有其他方法吗? 最佳答案 Environment.UserName在advapi32.dll中调用GetUserName。这意味着如果您要冒充其他用户,此属性将

c# - 是否有可能诱使此 WindowsIdentity 代码使用错误的用户?

TL;DRWindowsIdentity的Token属性中是否包含用户token(例如,someIdentity.Token)被欺骗:varvalidated=newWindowsIdentity(someIdentity.Token);...将返回一个实例,该实例声称代表一个用户,该用户实际上尚未通过身份验证,但已将IsAuthenticated设置为true,有效.Name和.User属性等等?下面我对此做了一些限制;大概不可能完全防欺骗。完整的故事:在thisanswer,Damien_The_Unbeliever巧妙地证明了我的某些代码可能会被欺骗,使其相信它在WindowsI

c# - 是否有可能诱使此 WindowsIdentity 代码使用错误的用户?

TL;DRWindowsIdentity的Token属性中是否包含用户token(例如,someIdentity.Token)被欺骗:varvalidated=newWindowsIdentity(someIdentity.Token);...将返回一个实例,该实例声称代表一个用户,该用户实际上尚未通过身份验证,但已将IsAuthenticated设置为true,有效.Name和.User属性等等?下面我对此做了一些限制;大概不可能完全防欺骗。完整的故事:在thisanswer,Damien_The_Unbeliever巧妙地证明了我的某些代码可能会被欺骗,使其相信它在WindowsI
12