我有一个具有区域级安全性的 SharePoint 2010 网站。该站点在默认区域中具有 Windows 身份验证,而在外联网区域中具有基于声明的身份验证。会员提供者用于基于声明的站点。
我的要求是以编程方式(c#)将该会员提供者的用户添加到这个基于声明的站点。
任何帮助将不胜感激。
谢谢
我有一个具有区域级安全性的 SharePoint 2010 网站。该站点在默认区域中具有 Windows 身份验证,而在外联网区域中具有基于声明的身份验证。会员提供者用于基于声明的站点。
我的要求是以编程方式(c#)将该会员提供者的用户添加到这个基于声明的站点。
任何帮助将不胜感激。
谢谢
要添加声明用户,您需要创建一个模式:
i:0#.f|{MembershipProvider}|{UserName}
我希望下面的代码为您提供足够的详细信息来解决您的问题:
string userName = "dipesh";
string membershipProvider = "MyCustomMP";
string claimUser = string.Format("i:0#.f|{0}|{1}", membershipProvider, userName);
SPUser user = web.EnsureUser(claimUser);
如果你说它在控制台应用程序中运行良好,我相信它应该只是权限问题。请注意,使用提升的运行将不起作用,因为您已将其托管为 Windows 服务并且不会有应用程序池。如我错了请纠正我。运行 Windows 服务的用户应该有适当的权限来添加用户。尝试使用运行控制台应用程序的当前登录用户运行 Windows 服务。如果它不起作用,请尝试使用 Farm Admin。即使成功了,也要与其他低权限用户一起测试,这样您就可以准确了解您需要什么权限。我希望你能尽快解决你的问题。