Sharepoint 如何在声明未映射到AD帐户的情况下执行WIF/声明模拟?
我需要在SharePoint 2010中为索赔用户执行搜索模拟。为了将其放在上下文中,我想首先说明我如何使其与Windows帐户一起使用,然后讨论索赔/WIF Windows帐户 我可以通过以下方式为“经典”Windows集成身份验证用户执行此操作:Sharepoint 如何在声明未映射到AD帐户的情况下执行WIF/声明模拟?,sharepoint,claims-based-identity,windows-identity,wif,Sharepoint,Claims Based Identity,Windows Identity,Wif,我需要在SharePoint 2010中为索赔用户执行搜索模拟。为了将其放在上下文中,我想首先说明我如何使其与Windows帐户一起使用,然后讨论索赔/WIF Windows帐户 我可以通过以下方式为“经典”Windows集成身份验证用户执行此操作: WindowsImpersonationContext wic = null; try { WindowsIdentity impersonatedUser = new WindowsIdentity("john.doe@mydomai
WindowsImpersonationContext wic = null;
try
{
WindowsIdentity impersonatedUser = new WindowsIdentity("john.doe@mydomain");
wic = impersonatedUser.Impersonate();
// do impersonated work here...
// in my case this is a SharePoint KeywordQuery
}
finally
{
if (wic != null)
{
wic.Undo();
}
}
要使上述功能正常工作,模拟帐户必须与当前用户位于同一域中,并且我必须确保应用程序池所有者是:
- “域功能级别”为Windows 2003或更高版本的域中的域帐户
- 在本地框上具有“作为操作系统的一部分”权限
- 在本地框上具有“身份验证后模拟客户端”权限
- (我有这本书)
我试着做一些类似于eppesuig建议的事情,但没有成功可能如果您编写了一个全新的STS,可以生成SharePoint将接受的可信声明令牌,那么您可能可以使用ActAs令牌解决此问题(SharePoint绝对不会接受OnBehalfOf令牌)。然而,这样做的安全影响相当令人担忧。从理论上讲,这应该是可行的,但让定制STS和SharePoint混合使用/信任被证明超出了我的能力范围。不过,我很想看到其他人尝试一下。对您用于执行关键字查询搜索的代码有什么建议吗?我需要一些帮助:)