Web服务和基于索赔的身份验证问题
-
09-12-2019 - |
题
我面临着基于我的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