如何解决ASP.NET 网页中的模拟
我在一个巨大的 ASP.NET Web 应用程序中有一个网页,它应该通过单击按钮更新位于本地计算机中的 excel 文件(使用 EPPlus)。
它在本地主机上运行良好,但在服务器上导致此错误。
System.UnauthorizedAccessException:拒绝访问路径。
暂时无法向 IIS 帐户 - NETWORKSERVICE 授予写入权限。
除了模拟之外还有其他方法可以修复此错误吗(用户对该路径具有“写入”权限,因此这样做可以解决错误)?
如果模拟是唯一的方法,是否可以仅针对这个特定网页进行模拟? (我不想显着更改 IIS 或 Web 应用程序的设置来解决此问题)
解决方法
有几个问题需要回答:
- 您是否在模拟当前登录的用户
- 无论谁登录,您都想访问这些文件吗?
对于第一个
- 可以使用下面的代码来模拟当前登录的 视窗用户
使用 System.Security.Principal; 使用(WindowsIdentity.GetCurrent().Impersonate()) { //你的代码在这里 }
第二个
- 您可以在具有访问权限的特定用户下运行 IIS 位置。
- 您可以使用模拟类,其中一些是 可在网络上找到,例如 Simple Impersonation Library 可以提供帮助 您可以简化模拟特定用户的过程
- 有一个很棒的帖子,以及可以从 https://daoudisamir.com/impersonate-users-in-c/ 使用的 C# 类
- 如果您是自托管站点,那么您可以创建一个有权访问该资源的 Windows 用户,并且您可以在 using 语句下以该用户身份登录并访问该资源
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。