问题标签 [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 投票
1 回答
3146 浏览

asp.net - ASP.NET 模拟使 Windows 身份流向 SQL Server

我有一个打开了模拟的网站。

IIS Windows 身份验证打开,匿名访问关闭。

SQL Server 安全性添加了 Domain\TestUser 帐户

我使用 Domain\TestUser 登录。

浏览测试页面显示 HttpContext 设置为 Domain\TestUser 并且 ApplicationPool 设置为 Domain\TestUser - 它应该...但是我在浏览目标网页(尝试连接到 sql)时出错,这告诉我“NT AUTHORITY\ANONYMOUS LOGON”正在尝试连接到 SQL。

除此之外,我从 Microsoft 网页运行了一个脚本,告诉我我的帐户不会流向 SQL。 http://msdn.microsoft.com/en-us/library/bsz5788z.aspx

问题是 - 为什么?

以上均未返回 True,但它们是什么意思!?

提前致谢,

KS

0 投票
1 回答
1112 浏览

c# - 使用 UNITY3D 和 MATLAB 的 MWARRAY.DLL 的不受支持的 MONO 函数“System.Security.Principal.WindowsIdentity.GetCurrent(bool)”

问题始于对尚不支持的单声道函数的函数调用。该调用是从一个名为 MWARRAY.DLL(.net 版本 2.x)的关闭 matlab DLL 进行的,此 dll 通常与 VS .NET 一起使用,并且如果您使用 .net 3.5 则可以正常工作。

函数是:[mscorlib]System.Security.Principal.WindowsIdentity::GetCurrent(bool)

我可以想到一些可能的解决方案,但我不知道该怎么做:

  1. 反编译 dll 并用类似的工作函数替换字节码: [mscorlib]System.Security.Principal.WindowsIdentity::GetCurrent() 注意没有传递给函数的布尔值
  2. 编译单声道并自己编写函数
  3. 使用旧版本的 MWARRAY.DLL(找不到,但可能仍使用相同的代码)

对于反编译,我使用了 IDA。我找到了调用第一个函数的位置,CIL + HEX 下面

call 和 stloc 命令的 HEX:

我还编译和反编译了我自己的 dll,调用这两个函数只是为了查看另一个命令在字节码中的样子:

自定义编译/反编译行的十六进制粗体:

我想知道是否有人知道建议的解决方案路径,或者其他可能会想到的东西?

0 投票
1 回答
16698 浏览

c# - ASP.NET 中的 WindowsIdentity.Impersonate 随机“用于模拟的令牌无效 - 它不能被复制”

我有一个 ASP.NET 应用程序,它要求用户使用基本身份验证使用他们的域帐户登录。用户可以做出选择,然后按下按钮。

按下按钮后的某个时间点是以下代码:WindowsIdentity.Impersonate(userIdentity.Token). userIdentityWindowsIdentity类型,之前设置为(WindowsIdentity)User.Identity

userIdentity存储为会话变量,我认为这是因为在按下按钮后,通过 AJAX 调用包含此代码的页面。

当我点击这段代码时,它在大约 2/3 的时间里工作,但在 1/3 的时间里,我得到了这个异常:Invalid token for impersonation - 它不能被复制。我认为对我来说最大的问题是为什么它有时会起作用,但有时却不起作用?在某些会话中,它会在失败之前工作多次。在其他人身上,它会立即失败。

这是堆栈跟踪:

在 System.Security.Principal.WindowsIdentity.CreateFromToken(IntPtr userToken)

在 System.Security.Principal.WindowsIdentity..ctor(IntPtr userToken,String authType,Int32 isAuthenticated)

在 System.Security.Principal.WindowsIdentity.Impersonate(IntPtr userToken)

在 C:\dev\RoomRes\Resource Booker\BLL\ReservationAgent.cs:line 101 中的 Resource_Booker.BLL.ReservationAgent.SubmitReservationRequest(Reservation reservation, Patron Patron)

在 C:\dev\RoomRes\Resource Booker\Reserve.aspx.cs:line 474 中的 Resource_Booker.Reserve.reserve_Click(Object sender, EventArgs e)

在 System.EventHandler.Invoke(对象发送者,EventArgs e)

在 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 eventArgument)

在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)

这是一个令人困惑的因素:我无法在本地 Windows 7 x64 工作站上重现此问题——尽管我的身份验证在此处隐式通过,因为我使用的是 localhost——或在 Windows 2003 32 位 IIS 6.0 环境中。它只发生在非常普通的 Windows 2008 R2 环境中。所有这些环境都是域成员。

0 投票
1 回答
205 浏览

asp.net - 为什么 IIS 似乎将来自 AppPool 的一个请求的 WindowsIdentity 提升到我的用户帐户?

我目前正在开发一个涉及用户使用 Windows 身份验证登录的 ASP .NET 应用程序。这会导致 HTTPContext.User 和 Thread.Principal 都设置为使用与登录用户相同的凭据,这是预期的行为,而 WindowsIdentity 保持为 IIS .NET AppPool 用户。

我最近在应用程序日志中注意到,似乎有一个请求(通常是加载页面时的第 5 次请求),其中 WindowsIdentity 以 IIS 用户身份开始,但最终被提升为正在登录的用户。

这似乎只在用户访问根路径(例如http://localhost/)时发生。如果我指定任何其他确切路径,例如http://localhost/index.aspx,则此请求似乎不会发生,并且 WindowsIdentity 永远不会改变。

浏览(相当大的)代码库,我只能找到一种模拟 WindowsIdentity 的方法,但除了在特定页面上的特定情况下不会调用该方法。

我想知道为什么会发生这种情况,以及 IIS 是否有任何原因可能会自行执行此操作。

0 投票
1 回答
3116 浏览

iis - Request.ServerVariables("LOGON USER") 返回空

Web.config 文件

IIS 权限

C#代码,

我缺少什么能够显示 Windows 用户 ID ?

0 投票
1 回答
382 浏览

authentication - 保护基于 WIF 的会话免受相关域 Cookie 攻击

我应该如何对基于 WIF 的身份验证会话实施额外的安全性,以保护自己免受以身份验证为目标的相关域 Cookie 攻击

0 投票
3 回答
2861 浏览

asp.net - HTTPContext.Current.User.Identity.Name 在控件中不起作用?

我有一个标签,我想将此标签的文本设置为

所以我写了

但它不起作用,但是当我在标签之外写这个时,例如:

有用。

0 投票
1 回答
272 浏览

.net - 如何确定用户是否可以以管理员身份运行?

当用户需要输入他们的许可证密钥时,如果可以,我们希望将其放入 HKLM,如果不能,我们希望将其放入 HKCU。如果它在 HKLM 中,则计算机上的所有用户都拥有许可证,而无需每个人都输入它。

我们是 Office 的附加组件,因此我们使用 Office 权限运行。通常这不是管理员权限(除非他们关闭了 UAC)。因此,无论用户可以做什么,WindowsPrincipal.IsInRole(Administrator) 都会返回 false。

如果用户有本地管理员权限,我们想启动一个具有 runas=admin 的小程序,然后他们可以在 HKLM 中设置它。但是,如果他们没有本地管理员权限,那么我们将其放入 HKCU。

那么...我如何确定用户是否可以执行 runas=admin?我们在 .net 3.5 上。

谢谢 - 戴夫

0 投票
2 回答
1994 浏览

azure - 使用 azure acs 和 mvc3 时检测用户登录的最佳位置是什么?

我希望能够检测用户何时使用被动 acs 登录我的应用程序,以便如果这是第一次使用我的应用程序,我可以将它们添加到我的数据库中。现在我正在订阅 WSFederationAuthenticationModule.SignedIn 但我觉得我错过了一些东西。主要是我不确定订阅该事件的最佳位置,我让它在 PostAuthenticateRequest 中工作,但它有点 hacky。有什么建议么?

此代码来自 global.asax

编辑:

现在我将使用一个标志变量来确保我只订阅一次 SignedIn。除非有人有任何其他建议:) 感谢 Sandrino 的帮助。这是我目前所拥有的。

编辑: 更多信息。如果我使用的是 azure 模拟器,则会出现此问题,部署时也可能会出现此问题,但我没有尝试过。我已经测试了我是否无法通过尝试写入文本文件进行调试并且没有创建文本文件。

0 投票
4 回答
6932 浏览

wif - WIF-ID1014:签名无效。数据可能已被篡改

我一直在使用 WIF 来验证我们的新网站,STS 基于 starter-sts 实现。

为了使它能够在负载平衡环境中正常工作,我在 global.asax 中使用了以下内容来覆盖默认证书行为。

这一切都在工作,人们已经成功地使用了这个系统,但是我们时不时地得到一个爆炸:

ID1014:签名无效。数据可能已被篡改。

在事件日志中,所以我打开了 WIF 跟踪并在日志中看到了以下内容。

ID1074:尝试使用 ProtectedData API 加密 cookie 时发生 CryptographicException(有关详细信息,请参阅内部异常)。如果您使用的是 IIS 7.5,这可能是由于应用程序池上的 loadUserProfile 设置设置为 false。

我有一种感觉,正如我所想的那样,这让我走上了一条黑暗的小巷,因为我已经将实现更改为使用 RSA,这不应该影响我。

有什么想法可以帮助我吗?