Я думаю, вы могли бы создать роль экстранета для каждого из вас, например экстранет.Site1Admin.
А затем создайте страницу, которая позволит ему создать пользователя, предоставив ему основные роли, которые ему необходимы.
Это код для Sitecore 6.0, хотя он должен быть таким же для6.4 afaik:
Sitecore.Security.Accounts.User user;
if (!Sitecore.Context.IsLoggedIn)
{
string domainUser = Sitecore.Context.Domain.GetFullName("youruser");
string txtPassword = "yourpass";
string txtEmail = "youremail";
if (Sitecore.Security.Accounts.User.Exists(domainUser))
return;
MembershipCreateStatus status;
Membership.CreateUser(domainUser, txtPassword, txtEmail, "Never?", "Always!", true, out status);
if (!status.Equals(MembershipCreateStatus.Success))
{
throw new MembershipCreateUserException(status.ToString());
}
user = //something to load the user, probably in Sitecore.Security.Accounts.User
}
var role = "extranet\\Site1User";
var roles = Roles.GetRolesForUser(); //this is probably only for the current context user
if (!roles.Contains(role))
{
try
{
Roles.AddUsersToRole(new string[] { "youruser" }, role);
}
catch(System.Configuration.Provider.ProviderException)
{
// do nothing, just move on
}
}
}
Это довольно просто, основано на некотором коде, который я пытался взломать вместе из некоторого рабочего кода, который создал пользователя и вошел в него и должен быть адаптирован к тому, что вы делаете,так как, вероятно, есть некоторые ошибки.