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

аюсь реализовать действительно простой MembershipProvider для sitecore, но я не уверен, что этослишком просто на самом деле работать. В основном у нас уже есть пользовательский магазин для пользовательских данных, поэтому я знаю, что клиентMembershipProvider это путь Тем не менее, мое приложение не будет входить в систему, за это отвечает другая часть системы. Кроме того, не имеет значения, кто именно вошел в систему, просто есть они или нет (часть who не имеет значения в области содержимого моего сайта).

Так каков наилучший способ сделать это? Мне передают токен в заголовке HTTP, который позволяет мне определить, вошел ли кто-то в систему или нет (я мог бы даже использовать это, чтобы фактически узнать, кто является клиентом, если я так хочу) - не волнуйтесь, это зашифровано.

Я прочитал документы sitecore, но все они имеют дело с полной реализациейMembershipProviders.

Таким образом, возможно ли на самом деле иметь поставщика членства, который делает только это, то есть возвращает либо пользователя для обозначения входа в систему, либо «анонимного» пользователя для тех, кто вышел из системы? это не должно быть связано ни с чем другим - сброс пароля, поиск пользователей по электронной почте и все такое прочее.

Спасибо ник

РЕДАКТИРОВАТЬ: с помощью Jens ниже я отказался от полномасштабногоMembershipProvider в пользу более легкого подхода.

это то, что у меня есть, проблема в том, что пользователи не входят в систему по нескольким запросам.

public class TokenLogin : HttpRequestProcessor
{


    #region Overrides of HttpRequestProcessor

    /// <summary>
    /// Processes the specified args.
    /// </summary>
    /// <param name="args">The args.</param>
    public override void Process(HttpRequestArgs args)
    {
        var customer = SomeCodeToParseAndValidateToken();

        //customer is null if token is invalid or missing
        if(customer == null || Sitecore.Context.User.IsAuthenticated) return;

        CreateVirtualUser(customer);
    }

    private static void CreateVirtualUser(CustomerAccount customer)
    {
        string userName = "extranet\\" + customer.CustomerAccountId;

        User userItem = AuthenticationManager.BuildVirtualUser(userName, true);   
        userItem.Profile.Initialize(userName, true);    
        userItem.Profile.Save();

        AuthenticationManager.Login(userItem.Name);
    }

    #endregion
}

Ответы на вопрос(1)

Ваш ответ на вопрос