无需身份验证即可获取用户身份

时间:2009-02-12 18:23:58

标签: asp.net authentication web-config

我有一个将文件写入NETAPP的ASP.NET应用程序。它很挑剔,我们唯一能让它工作的方法是设置<identity impersonate="true"/>并删除web.config中的<authentication.../>标记。这允许应用程序写入NETAPP(在幕后使用相应的权限),但现在我的应用程序无法分辨谁正在使用它。是否有其他方法来获取用户的ID而不强制他们登录?这是一个内部应用程序,因此只能从具有登录用户的工作站运行。有什么想法吗?

编辑:我不是IIS专家,但我相信该应用程序已设置为在某个特权帐户下运行以使其正常运行。如果无法获得用户的ID,我也在寻找其他方法来设置它。

3 个答案:

答案 0 :(得分:3)

  • 在web.config
  • 中将身份验证设置为“Windows”
  • 关闭IIS中网站的“匿名访问”
  • 为IIS中的网站启用“集成Windows身份验证”
  • 在您的web.config
  • 中打开身份模拟

我相信这会做你需要的。

答案 1 :(得分:0)

我可以将写入部分移动到Web服务,这样服务就可以获得所有必要的权限,而不会影响我的应用程序的运行方式。不过,这是很多工作,所以我希望得到一个更简单的答案。

答案 2 :(得分:0)

如果您有集成Windows身份验证,那么

string username = HttpContext.Current.Request["LOGON_USER"];

根据评论进行编辑; 也许您真正想要的解决方案因此禁用整个应用程序的模拟,并且只模拟需要模拟的所需位。

有关如何完成此操作的更多详细信息,请参阅此页。

http://www.west-wind.com/WebLog/posts/1572.aspx