在过去的几天里,我已经阅读了很多关于如何在我的asp应用程序(使用devexpress xaf开发)中获取当前用户的建议,但到目前为止没有任何对我有用。
的返回值WindowsIdentity.GetCurrent().Name
始终是NT AUTHORITY \ SYSTEM。 我尝试过像this这样的建议,以及在devexpress论坛中发现的一对。
我认为应该起作用的是
包括
<system.web>
<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
(我也试过将上面的imporsonation设置为false但没有变化)
但结果仍然是NT AUTHORITY \ SYSTEM。
答案 0 :(得分:0)
由于“NT AUTHORITY \ SYSTEM”是“Builtin \ Administrator”的成员,因此默认授予SYSADMIN服务器角色。 默认情况下,本地系统帐户是本地Administrators组的成员,因此是SQL Server中sysadmin组的成员。
要启用模拟,请为web.config中的identity元素设置impersonate =“true”。
<system.web>
<identity impersonate="true" />
</system.web>
还可以从IIS启用或禁用模拟。
将DefaultAppPool的“托管管道模式”设置为“经典”。
运行应用程序,注意现在使用“NT AUTHORITY \ IUSR”帐户执行应用程序代码,而不是“IIS APPPOOL \ DefaultAppPool”