我到处搜索过这个问题...我有一个独立的 IIS 服务器,它不是域成员,通过 VPN 连接到我们的网络。此服务器上运行着几个网页,Sharepoint 就是其中之一。我配置了反映域中用户和密码的本地用户和密码,但访问 SharePoint 网站时,Web 浏览器仍然需要身份验证。有没有办法禁用这种烦人的行为?
其他网站没有问题:我只是在 IIS 中配置了匿名访问,并授予 IUSR_machinename 对磁盘上物理文件夹的访问权限。但是,不适用于 WSS。
有任何想法吗?
答案1
如果服务器和客户端计算机不在同一个域中,那么如果不做太多工作这是不可能的。
在域环境中,对 Sharepoint 访问权限进行身份验证的后台过程大致如下:
- 首先,您要向域控制器进行身份验证
- 域控制器为您分配一张票
- 网络服务器检查你的票
在非域环境中,在服务器端配置这种自动身份验证绝非易事。
解决方法
您可以在客户端通过在浏览器中存储密码或通过配置 IE 来使用当前用户凭据进行身份验证。
火狐浏览器: 当导航到 Sharepoint 网站时,会打开新的对话框,要求输入凭证。输入凭证后,Firefox 浏览区域顶部会出现一个“对话框”,询问用户是否要存储密码。选择“确定”后,凭证就会被存储。下次访问网站时,用户只需使用用户名/密码确认自动完成的表单即可。
IE: 针对 Firefox 提到的方法对我来说不起作用。IE 确实提供了记住密码的功能,但即使您选中此选项,也不会存储凭据。(也许有人有解决方案)。
以下是确实有效:您将站点添加到本地 Intranet 区域(工具 -> Internet 选项 -> 安全 -> 本地 Intranet -> 站点 -> 高级)。默认情况下,安全级别设置为 IE 应尝试使用当前用户凭据自动验证您的身份。您可以通过单击自定义级别,然后搜索用户认证节。如果仅在内部网区域自动登录或者使用当前用户名和密码自动登录被选中,这应该可以工作。
当然,您也可以使用 Intranet 区域,将其添加到 Trusted 区域或其他地方。只需确保使用当前用户名和密码自动登录选项被选中。
答案2
答案就在浏览器设置中。您需要将服务器添加到 Intranet 区域,并确保已为 Intranet 区域启用允许凭据在后台传递的设置。以下是 IE7 的设置:
本地 Intranet 设置:点击工具 --> Internet 选项 --> 安全选项卡 --> 本地 Intranet --> 站点 --> 高级。确保“需要服务器验证…”复选框未选中。然后在“将该网站添加到区域:”框中输入您的服务器。点击添加 --> 确定 --> 确定 --> 确定。然后,执行下一个重要步骤。
然后,点击工具-->Internet 选项-->安全选项卡-->本地 Intranet-->自定义级别-->在用户身份验证登录下的最后一个设置中,选择“仅在 Intranet 区域自动登录”-->单击确定-->确定。
那就可以了!
答案3
将域用户映射到本地用户?您知道域用户的用户名与本地用户的用户名完全不同。区别在于域用户的帐户类似于 DOMAIN\USER,而本地用户的帐户则是 MACHINENAME\USER?
要映射这些,您需要编写自己的 AuthenticationProvider(这肯定是可能的,因为 SharePoint 使用了 auth。提供者使用在整个 (ASP).NET 中使用的提供程序模式构建,用于诸如身份验证之类的操作。
然而,创建您自己的提供商可能需要做大量工作。