![](/img/trans.png)
[英]How to add AD group to SharePoint 2010 SPGroup programmatically?
[英]Sharepoint 2010 - Add group on deploy
为了为网站集提供Webpart和自定义Web模板,我需要创建自定义组。 我通过以下方式做到这一点:
using (SPSite site = properties.Feature.Parent as SPSite)
{
if (site != null)
using (SPWeb rootWeb = site.RootWeb)
{
try
{
rootWeb.AllowUnsafeUpdates = true;
rootWeb.SiteGroups.Add("Admins", site.Owner, site.Owner, "Admins");
try
{
SPGroup sp_grpAdmins = rootWeb.SiteGroups["Admins"];
SPRoleDefinition sp_rldAdmins =
rootWeb.RoleDefinitions.GetByType(SPRoleType.Administrator);
sp_rldAdmins.Name = "Admin rights";
sp_rldAdmins.Description = "all";
rootWeb.RoleDefinitions.Add(sp_rldAdmins);
SPRoleAssignment sp_rlaAdmins = new SPRoleAssignment(sp_grpAdmins);
sp_rlaAdmins.RoleDefinitionBindings.Add(
rootWeb.RoleDefinitions["Admin rights"]);
rootWeb.RoleAssignments.Add(sp_rlaAdmins);
sp_grpAdmins.Update();
rootWeb.Update();
}
catch (ArgumentException argex)
{
}
}
}
如果我将此代码添加到Webpart中(用于调试示例-无法使事件接收器进行调试),则会创建该组。 您是否知道如何调试功能事件接收器,或者是否存在功能事件接收器无法完成的限制? 非常感谢你。
您可以通过将Visual Studio附加到w3wp.exe来调试事件接收器。 请注意,您应该手动激活功能,因为如果自动激活,则会在您的进程加载所有DLL之前将其激活。
我通常要做的是安装站点。 部署程序包。
在Visual Studio中,按Ctr + Alt + P(菜单->调试->附加以进行处理)。 这将打开计算机上运行的所有进程。 如果不存在w3wp.exe进程,请确保选中“显示所有用户的进程”和“显示所有会话中的进程”。 在列表中选择所有w3wp.exe进程,然后单击附加。 系统将询问您有关警告安全性的信息-只需单击“确定”(如果需要,可以多次单击)。
连接后,在“站点收集功能”中手动激活带有事件接收器的功能。 如果一切顺利->这将停止,您可以继续调试。
如果万一它没有在事件接收器中停止,我建议您重新编译该项目。 再次打包并重新部署。 IIS重置后-这将从GAC重置DLL。
请注意,Visual Studio项目应处于DEBUG模式。
如果你有任何问题...
希望能帮助到你,
安德鲁
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.