获取用户的身份而不进行身份验证
问题描述:
我有一个将文件写入到NETAPP的ASP.NET应用程序。它很挑剔,而我们能够实现它的唯一方法是设置<identity impersonate="true"/>
并删除web.config中的<authentication.../>
标签。这允许应用程序写入到NETAPP(在幕后进行适当的权限篡改),但现在我的应用程序无法分辨谁正在使用它。有没有另一种方式来获得用户的ID而不强迫他们登录?这是一个内部应用程序,所以它只能从登录用户的工作站运行。有任何想法吗?获取用户的身份而不进行身份验证
编辑:我不是IIS专家,但我相信该应用程序已设置为在某个特权帐户下运行以使其正常工作。如果没有办法获取用户的ID,我还在寻找替代方法来设置它。
答
- 在你的web.config认证设置为“窗口”
- 在IIS
- 关闭“匿名访问”的网站在IIS
- 在“集成Windows身份验证”打开的网站在web.config中打开身份模拟功能
我相信会做你所需要的。
答
一种可能性是我将书写部分移动到Web服务,以便服务可以获得所有必要的权限,而不会影响我的应用程序的功能。不过,这是一项很多工作,所以我希望能有一个更简单的答案。
答
如果你有集成Windows身份验证,然后
string username = HttpContext.Current.Request["LOGON_USER"];
编辑根据意见; 也许您真正需要的解决方案,以便禁用整个应用程序的模拟,并只模拟需要模拟的必需位。
有关如何完成此操作的其他详细信息,请参阅此页面。
的问题是,我必须关闭Windows身份验证来得到它写入NETAPP,所以这是不行的。 – gfrizzle 2009-02-12 18:38:56