通过API向Sitecore域添加和更改用户和角色

通过API向Sitecore域添加和更改用户和角色,sitecore,sitecore6,Sitecore,Sitecore6,我必须创建一个单独的web项目来访问sitecore域的角色和用户API,这样我就可以通过编程方式向树添加具有自定义访问权限以及自定义语言访问权限的新角色。我找到了安全API的文档 但我不知道如何添加一个新角色,我可以创建任何类型的项目,比如MVC4,还是必须在WebForms中?通过添加新角色并通过API为他们分配新用户,这样他们就可以通过SiteCore域正常登录,这样就可以向树中添加自定义权限了吗?另外,我应该使用什么数据库,我看到有3个不同的数据库(核心、主数据库、web),我必须手动连

我必须创建一个单独的web项目来访问sitecore域的角色和用户API,这样我就可以通过编程方式向树添加具有自定义访问权限以及自定义语言访问权限的新角色。我找到了安全API的文档


但我不知道如何添加一个新角色,我可以创建任何类型的项目,比如MVC4,还是必须在WebForms中?通过添加新角色并通过API为他们分配新用户,这样他们就可以通过SiteCore域正常登录,这样就可以向树中添加自定义权限了吗?另外,我应该使用什么数据库,我看到有3个不同的数据库(核心、主数据库、web),我必须手动连接到数据库并在那里添加角色,还是API会为我这样做

我最终创建了一个类,可以在需要时添加新的语言(区域)。这就是我的想法

using(new Sitecore.Security.Accounts.UserSwitcher(user) //To switch to any user you want, in my case it was the "sitecore/admin"


System.Web.Security.Roles.CreateRole(roleName) //To create roles
var role = Sitecore.Security.Accounts.Role.FromName(roleName) //To retrieve the role.
//Get a list of the permissions that you would like to set
//For every item in that list
AccessRuleCollection accessRule = Item.Security.GetAccessRules();
acessRule.Helper.AddAccessPermission(role,AccessRight,PropagationType,AccessPermission);

//Write the Rules back to the item
Item.Editing.BeginEdit();
Item.Security.SetAccessRules(accessRules);
Item.Editing.EndEdit();

希望有帮助。

您确定要通过编程方式添加全新角色吗?您可能难以确定对新角色应有的树部分的访问权限,尤其是从自定义UI的角度来看,这将是一件棘手的事情。将用户添加到现有角色将非常简单,但我会质疑其他需求,而不是它是否可行。我想你的角色结构到最后会变得有点混乱,你不会很好地利用角色继承。是的,我正在为一个多语言网站处理多个语言bucket,但每种语言实际上都有自己的bucket,因为这是已经实现的设计,所以要添加一个新角色,对于每种语言的ContentApproval角色和ContentManager角色,我必须手动撤销对某些语言和树的某些部分的访问权限,并且有可能添加更多语言,这意味着在多个地方有更多的bucket。我必须创建一个UI,允许用户添加一种新的语言,然后为编辑和经理自动创建bucket、角色和用户。有什么方向吗?那么您是否也在通过代码添加Sitecore语言?如果你只是添加一种新的网站语言,你将如何处理翻译?太好了,对不起,我没有足够的时间回复!很高兴你把它整理好了。