【问题标题】:Accessing SharePoint authentication information from .NET ActiveX control从 .NET ActiveX 控件访问 SharePoint 身份验证信息
【发布时间】:2009-12-10 19:38:23
【问题描述】:

我们有一个嵌入在自定义 SharePoint 页面中的 .NET ActiveX 控件。 用户必须进行身份验证(Windows 身份验证而不是表单身份验证)才能访问此页面。

我们的 ActiveX 控件正在将 Web 服务调用回 SharePoint 服务器。由于 SharePoint 服务器不允许匿名访问,我们需要在 Web 服务调用中提供凭据。如果用户在提示输入凭据时选中“记住密码”复选框,那么我们可以通过 CredentialCache.DefaultNetworkCredentials 访问这些凭据。但是,如果他们不选中该复选框,我们需要另一种机制来获取有效凭据(它必须存在,因为我们嵌入的页面只能通过身份验证访问)。

我们如何访问我们需要针对 SharePoint 进行身份验证的凭据信息(可能存储在 cookie 中),以便我们可以访问 Web 服务?

【问题讨论】:

  • 看起来我们可以将 cookie 从 JavaScript 传递到我们的控件并使用它们。

标签: web-services sharepoint authentication cookies activex


【解决方案1】:

SPUtility 类中有一个名为EnsureAuthentication 的方法,您也可以点击/_layouts/Authenticate.aspx 页面将用户自动登录到sharepoint。

你也可以用Impersonation封装你的电话。

【讨论】:

  • EnsureAuthentication 似乎是一种服务器端方法,但我们正在寻找一种方法来在客户端执行客户端计算机上托管的 ActiveX 控件。至于 Authenticate.asmx,我们正在寻找一种机制来获取用户在导航到托管页面时已经提供的凭据,而不是重新提示用户输入凭据。
  • 我使用类似的方法从 Silverlight 应用程序访问 SharePoint。我的请求类似于:Silverlight 调用 ASHX 文件(在 SharePoint 下),ASHX 文件使用 RunWithElevatedPrivileges 模拟请求并输出返回。我向您发送了 win32 模拟,以便您可以构建更少以共享点为中心的内容。 Authenticate.aspx 的想法是请求将获取当前用户并传递 windows 帐户并自动对其进行身份验证,将请求转移到实际的 web 服务
【解决方案2】:

您可以像从 Silverlight 中使用 XMLHTP 一样向您的 ashx 发送消息。

【讨论】:

  • 使用正确的凭据发送该消息正是我要解决的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多