我有一个具有区域级别安全性的SharePoint 2010网站。该站点在默认区域中具有Windows身份验证,而在Extranet区域中具有基于声明的身份验证。成员资格提供程序用于基于声明的站点。
我的要求是以编程方式(c#)将该会员提供商的用户添加到此声明的网站。
非常感谢任何帮助。
由于
答案 0 :(得分:0)
要添加声明用户,您需要创建一个模式:
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);
答案 1 :(得分:0)
如果你说,它在控制台应用程序中运行良好,我相信它应该只是权限问题。请注意,使用提升的运行将无法正常运行,因为您已将其作为Windows服务托管,并且不会有应用程序池。如我错了请纠正我。运行Windows服务的用户应具有添加用户的适当权限。尝试使用当前登录用户运行Windows服务,通过该用户运行控制台应用程序。如果它不起作用,请尝试使用Farm Admin。即使它成功,也要与其他较低特权用户一起测试,以便您可以准确了解所需的权限。 我希望你尽快解决问题。