问题标签 [windows-identity]

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 回答
2088 浏览

c# - Windows 模拟以静默方式失败,没有错误并结束执行

我正在使用以下内容在 Windows 7 上模拟用户。此代码编译为 dll 并从 python 调用。通常它可以工作,但最近我们看到主要执行失败并追溯到“ WindowsIdentity.Impersonate(safeTokenHandle.DangerousGetHandle());”方法。当它被调用时,它不会冒充用户,不会引发错误,并且执行会立即停止(Console.WriteLine()不会调用右边的 after)。

有任何想法吗?请?我不想承认我花了多少时间试图解决这个问题。

谢谢!

根据 Ben 的建议改为 python:

0 投票
1 回答
796 浏览

c# - 客户端用户的 WindowsIdentity

我正在为一家公司编写一个 Web 应用程序,他们要求用户不应该输入任何用户名和密码,应该允许用户通过他们的 Windows 身份登录系统。

我已经尝试过 WindowsIdenity.GetCurrent() ,如果应用程序在客户端上,它就可以工作。

如何将客户端用户的 WindowsIdenitiy 发送到服务器。

0 投票
1 回答
674 浏览

c# - 比较服务器上的 WindowsIdentity.Current.Name

我目前正在审查一个带有 wcf 服务的系统和一个使用 Windows Auth 通过 tcp 连接到它的客户端应用程序。

在某些操作中,需要将用户名存储在对象属性上,将其发送到服务并将其与从客户端传递的凭据进行比较。然后对该对象进行进一步处理。

客户最近发现,这并不总是按预期工作。我研究了这个问题,发现在某些情况下,客户端和服务器端使用了不同的用户名(大小写的用法不同)。

我已经安装了一个解决方法(显然在 string.Equals 中使用了 IgnoreCase 选项)但是我对真正的修复很感兴趣。

在客户端它使用 WindowsIdentity.Current.Name 作为字符串,在服务端它使用 ServiceSecurityContext.Current.WindowsIdentity.Name 作为字符串。

进行这种比较的正确方法是什么?

0 投票
1 回答
2264 浏览

asp.net - asp.net WindowsImpersonationContext 函数

谁能解释一下下面几行的功能:

这用于具有 IIS 基本身份验证的 POST 方法并且工作正常。但是,如果将 IIS 身份验证设置为 windows,则上述内容不再有效。

例如,要转储的代码太多了。

0 投票
7 回答
35172 浏览

c# - 如何获取用户名@域格式的当前 Windows 用户名?

我知道以下函数以域\用户名格式返回当前 Windows 用户名。

但是如何获取username@domain格式中的用户名呢?

编辑:

我在此编辑中做出回应,因为所有回复的人都有相同的基本想法。

根据我的理解,从domain\username格式解析名称并将其构造为username@domain不安全或不建议的。我相信是这样,因为不能保证两个域名在不同格式下是相同的。例如,在我工作的公司中,格式的domain一部分domain\username是基于部门的,但在 中username@domain,它是公司名称。这是需要DNS查找的那种东西。

我希望有一个 API 可以进行 DNS 查找。我想我应该把这些信息放到我原来的问题中。对不起。

0 投票
1 回答
1982 浏览

c# - 如果以本地管理员身份运行,如何签入 C#

可能重复:
如何判断我的进程是否以管理员身份运行?

如果我的进程以本地管理员身份运行,如何使用 C# 检查?

我知道如何确定当前用户是否是内置管理员组的成员。但这不是我想知道的。我想知道当前用户是否是(唯一的)特殊本地管理员帐户。

我也知道如何检索当前用户的名称,但我不想将其与硬编码名称“Administrator”进行比较,因为这不适用于 Windows 的本地化版本(例如西班牙语中的“Administrador”、“Administrateur”法语等)。

0 投票
2 回答
6363 浏览

c# - CryptographicException:数据在启用 WIF 的 MVC 4 中无效

我创建了一个 MVC 4 项目并将其设置为 Azure ACS。它与 System.Identity 一起使用。我将其更改为使用 Microsoft.Identity 来启用 WIF,我的配置文件现在如下所示:

我的问题是当我运行我得到的网站时:

0 投票
2 回答
15711 浏览

asp.net-mvc-3 - MVC3 Windows Authentication override User.Identity

I am building a intranet application using MVC3 with a MSSQL backend. I have authentication and roles (through a custom roles provider) working properly. What I am trying to do now is overriding User.Identity to allow for items like User.Identity.FirstName. But I cannot find any code that will show me how do this in WindowsIdentity

I have tried writing a custom provider:

and overriding the WindowsAuthentication to populate the custom principal.

I have a breakpoint in the authentication function and the principal is being populated; however, when I put a breakpoint in the controllers, the User is just its normal RolePrincipal, instead of my custom principal. What am I doing wrong?

EDIT:

I commented out the code above in the global.asax. I have overridden the AuthorizeAttribute using C#:

And adjusted my principal to the following:

Now I when I put a breakpoint in, the watch shows the following in user:

  • User
    • [CSupport.Model.CPrincipal]
    • Identity

Identity is accessable; however, it is still the WindowsIdentity CPrincipal is only accessible in the watch and not accessible directly.

EDIT: Thanks to everyone who contributed to this. You have greatly expanded my understanding of how the various parts work.

I got both ways to work, so I thought I would share.

Option 1: Override the Authorize Request in Global.asax

This is the one I am going with.

I did not use Application_AuthenticateRequest because (according to this: HttpContext.Current.User is null even though Windows Authentication is on) the user has not been populated in a Windows authentication process and thus there is nothing that I can use to go get the user information.

Application_AuthorizeRequest is the next in the chain and happens after the windows identity is brought in.

This is the override of the Principal

This is how you access the updated info in the new Principal that was created.

Option 2: Override the AuthorizeAttribute

This is the overridden Principal (It is the same as above)

Here is the override of the Authorize Attribute

This is where you change which AuthorizeAttribute to use and utilizing the new information.

Option 1 handles everthing globally, option 2 handles everything at an individual level.

0 投票
1 回答
534 浏览

claims-based-identity - 从 IClaimsPrincipal 生成 SWT 令牌并对其进行签名

我想根据以下声明创建一个 SWT 令牌:

我找到了用于验证 swt 令牌的代码,但无法找到从 IClaimsIdentity 声明中创建的示例。

0 投票
1 回答
519 浏览

wcf - WindowsIdentity.GetCurrent().Name 返回机器名而不是 Windows 用户名

我正在调用在 IIS 7.5 上的虚拟目录中运行的 Web 服务应用程序 (.asmx)(出于开发目的,我只有 IIS 5.1,但无论如何我希望能得到一些帮助)。从 VS2010 System.Security.Principal.WindowsIdentity.GetCurrent().Name 中运行时调用我的 ws 会返回域\windows 用户,但是当我通过虚拟目录调用它时,我会得到机器名\ASPNET。

由于某种原因不允许在最终环境中的 web.config 中使用。虚拟目录仅具有集成 Windows 身份验证。

在所描述的情况下,任何人都可以了解如何获取当前用户的 Windows 用户名吗?

提前致谢...

./CJ