gpt4 book ai didi

c# - 在 ASP.NET 中转发身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:08 26 4
gpt4 key购买 nike

在我的 ASP.NET 应用程序中,我使用 WebClient 下载文件。这个文件几乎总是在公司内网上,需要权限才能访问。每当我在 VS 中运行该应用程序时,它都运行良好,因为它是在我自己的权限上下文中运行的。但是,当它部署到 IIS 时,它在“网络服务”权限的上下文中运行,当涉及到 Intranet 时,这些权限基本上不存在(如您所料)。

我可以在这里看到一些糟糕的解决方案:

  • 专门为应用程序创建一个帐户,详细信息将位于 web.config 中并以字符串形式提供给 WebClient。这是次优的,因为并非服务的所有用户都具有相同的权限。
  • 要求输入用户名和密码。这永远不会被批准,因为公司会尽可能使用证书。密码用于登录 Windows,几乎所有超过这一点的东西都在 Kerberos 的帮助下使用 Windows 身份验证

最佳解决方案是将当前访问者(并通过 Kerberos 提供 Windows 身份验证数据)的凭据直接传递给 WebClient 对象。这可能吗?如果是这样,怎么会这样?如果有人能告诉我,或者至少让我摆脱痛苦并告诉我这是不可能的,我将非常感激。

最佳答案

模仿被证明是最佳解决方案;谢谢你,JT。

有很多关于将 Windows 身份验证与模拟绑定(bind)的好资源。一个我没有实际使用过,但后来发现并且看起来非常全面的,可以在这里找到:

http://www.codeproject.com/Articles/94612/Windows-Authentication

在我的案例中也需要委托(delegate),这个人解释得很好,并链接到一个有用的 msdn 文档:

http://blog.reveille.org.uk/2010/01/asp-net-impersonation-delegation-2/

关于c# - 在 ASP.NET 中转发身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com