![在文件共享上对其他用户进行身份验证](https://linux22.com/image/564140/%E5%9C%A8%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB%E4%B8%8A%E5%AF%B9%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我有一个文件共享(Windows、SMB、AD),需要身份验证才能访问。在 Windows 资源管理器 (\\ip\share) 中手动访问它会询问我用户/密码。没问题。访问服务器共享的客户端计算机是不是与服务器在同一个域中,并且无法更改这一点。
但是,从其他用户(例如 IIS AppDomain 用户)使用此功能将不起作用。此问题与 IIS 中的共享文件夹(例如图像上传文件夹)相同。(注意:我需要本地访问,仅拥有 IIS 映射的虚拟文件夹是不够的。)
有没有办法在 Windows 中全局安装共享?让所有用户都可以访问它。或者还有其他方法可以解决这个问题?
答案1
您所描述的是匿名访问,这与向他人提供您的管理员密码一样不受欢迎。您确实应该为将访问共享的用户帐户设置适当的权限,并让用户使用适当的帐户(如果他们自己的帐户没有权限)。
答案2
一种方法:如果客户端/服务器上的用户名+密码匹配,则身份验证将起作用。可以在 IIS 中分配用户。访问属于其他 AD 的共享时,将自动使用 Windows 中的登录凭据。
它解决了我当前的问题,但如果有任何方法可以在 Windows 中全局安装磁盘,那就太好了。
答案3
解决方法你确定是实现这一目标的唯一方法。
至于为什么这不会并且不能起作用:
Windows 中的远程身份验证是在本地用户的特定用户上下文中完成的。当您的用户会话将驱动器映射到 M: 之类的位置时,该驱动器映射仅在您的会话本身中可用。计算机上的其他帐户(例如终端服务器上下文中的帐户)不会获得 M: 映射。
在域环境中,单个计算机无需用户即可访问远程服务,但它通过计算机的域帐户。该计算机的用户不会继承此访问权限。Microsoft 将身份验证令牌牢牢地保存在用户空间中。
当访问尚未具有关联登录会话的远程资源时,Windows 将提供访问用户的用户名和密码,前提是这些凭据在远程系统上有效。如果它们无效(有时即使有效,例如当支持的安全协议足够不同时),它会向用户发出提示。这种手动同步的用户名/密码方法是在工作组环境中获得“无缝”身份验证的唯一方法,而无需诉诸访客/匿名共享方法。