我面临着基于我的Web服务的索赔访问的一些问题。

在我的应用程序上只有基于索赔:Windows auth被禁用,NTLM也是如此。 如果我访问基于Web的界面的SharePoint,则将我识别为UserX,一切都会进入。

如果我访问ws,则有2个方案:

  • 通过使用的致电(系统帐户) - >一切顺利
  • 通过userx调用(no sa但scadmin) - >对象引用未设置为对象的实例

    代码非常简单,只获取当前用户登录名:

    using (SPSite sito = new SPSite("https://to0wss2k10rey03:50000/sites/Test1"))
                {
                    using (SPWeb web = sito.OpenWeb())
                    {
                        string Username =  web.CurrentUser.LoginName;
                    }
                }
    
    .

    当我尝试获取函物者时提出了异常,似乎是null。

有帮助吗?

解决方案

我很安静的是它通过它的适用方式,它应该始终失败。

在没有NTLM的情况下使用索赔运行时,通过凭据的唯一方法是通过SharePoint SAML令牌的FedAuth Cookie。要获取该令牌,您必须使用identityProvider(ADFS?)使用Saml令牌调用SharePoint STS。要获得该令牌,您必须使用登录信息调用身份提供商。

索赔代理 - AC#呼叫索赔的库保护Web服务 连接到SharePoint与索赔身份验证或主博客有关SharePoint的主博客 share-n-dipity

许可以下: CC-BY-SA归因
scroll top