Админ экстрасети Sitecore?
Привет! Я разрабатываю приложение с несколькими сайтами, и у каждого сайта есть собственный экстранет, и все это прекрасно работает с использованием Sitecore 6.4.
Теперь мне нужны редакторы (не администраторы) каждого сайта, чтобы иметь возможность создавать пользователей экстрасети, которые имеют доступ только к экстрасети, связанной с сайтом, возможно ли это?
В основном я ищу на структуру, как это:
Sitecore \ Editor (локальный администратор экстрасети)
Экстранет \ пользователь
1 ответ
Я думаю, что вы могли бы сделать роль экстранета для каждого из вас, например, экстранет. 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
}
}
}
Это довольно просто, оно основано на некотором коде, который я пытался взломать вместе с каким-то рабочим кодом, который создал пользователя и вошел в него и должен быть адаптирован к тому, что вы делаете, поскольку, вероятно, есть некоторые ошибки.