Админ экстрасети 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
        }

    }
}

Это довольно просто, оно основано на некотором коде, который я пытался взломать вместе с каким-то рабочим кодом, который создал пользователя и вошел в него и должен быть адаптирован к тому, что вы делаете, поскольку, вероятно, есть некоторые ошибки.

Другие вопросы по тегам