Sharepoint 2016:IIS - 使用登录凭据身份而不是AppPool身份

时间:2016-09-06 03:17:00

标签: asp.net wcf iis sharepoint sharepoint-2016

我有一个aspx网站,它部署到sharepoint 2016服务器,并在另一台机器上调用Windows服务(WCF)。 我想输入登录凭据并使用此帐户来获取对Windows服务的请求。但是所有请求都具有带AppPool标识的安全令牌,而不是我的登录帐户。 我的web.config:

<identity impersonate="true" />
<authentication mode="Forms" />
<authorization>
  <allow users="*" />
  <deny users="?" />
</authorization>

在IIS上,我启用了Windows身份验证,ASP.NET模拟和匿名身份验证(SP 2016要求访问本地资源)。

当打开网站时,会打开登录表单,允​​许我输入帐户,我将日志添加到默认页面以提取上下文的标识,它们是:

  • HttpContext,SPContext,Thread Principal,WindowsPrincipal用户都是我的登录帐户 - &gt;按预期确定
  • 但WindowsIdentity是AppPool标识 - &gt; NOK
  • 并且WCF请求令牌是AppPool身份 - &gt; NOK

那么如何配置/编码才能将登录帐户设置为WCF请求令牌?

谢谢。

1 个答案:

答案 0 :(得分:0)

您必须自己构建外部服务(在您的情况下为WCF服务)所需的令牌。

在从Visual Studio SharePoint加载项模板创建的标准SharePoint加载项项目中,Microsoft提供的所有代码均为 SharePointContext.cs TokenHelper.cs 文件。您可以研究这两个文件,作为SharePoint加载项如何构建OAuth令牌等的示例。