Я думаю, вы могли бы создать роль экстрасети для каждого из вас, «экстранетов», например. Сайт1Админ.
А затем создайте страницу, которая позволит им создать пользователя, предоставив этому пользователю основные роли, которые ему нужны.
Это код для Sitecore 6.0, хотя он должен быть таким же для 6.4, если честно:
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
}
}
}
Это довольно просто, основано на некотором коде, который я пытался собрать из некоторого рабочего кода, который создал пользователя и вошел в него, и его следует настроить на то, что вы делаете, поскольку, вероятно, есть некоторые ошибки.
person
Holger
schedule
30.03.2011