2017-01-26 20 views
1

Im, использующий Umbraco 7 и хотел бы интегрировать мой собственный вход в систему для входа в Umbraco 7 (WinForms not MVC), но в то же время использовать текущую систему входа в Umbraco, чтобы администратор мог войти в систему как обычно в Умбрако и вносить изменения.Добавить свой логин в Umbraco

Когда я говорю о собственной системе, я имею в виду созданный нами веб-сайт, который содержит учетные записи пользователей, когда они регистрируются (это было построено с использованием .Net 2.0).

Я искал Умбрако, и поэтому все кажется плотно интегрированным и задаются вопросом, есть ли у кого-то способ достичь этого?

ответ

0

Там много способов настроить Umbraco встроенного ЧЛЕНСТВА, подробнее об этом здесь: http://24days.in/umbraco-cms/2015/extending-membership/

Все, хотя, по звуку вашего вопроса, Вы желаете внести изменения в Пользователь в Umbraco а не членов.

Насколько я знаю, «пользователи» довольно тесно интегрированы в Umbraco, хотя есть и пользовательский сервис, с которым вы можете играть. Подробнее об этом читайте здесь: http://programystic.com/code/umbraco/create-a-new-umbraco-user-programmatically-on-startup-when-locked-out/

Вы можете технически гарантировать, что ваши пользователи WinForms будут постоянно синхронизироваться с вашими пользователями Umbraco. Когда ваши пользователи WinForms обновляются, убедитесь, что WinForms обращаются к API на вашем сайте Umbraco, который синхронизирует данные с пользователем Umbraco.

Это может быть не идеальное решение, но оно может работать как обходное решение.

+0

Я изучу эти ссылки. То, что я хотел бы сделать, это использовать собственную реализацию регистрации в системе для внешних пользователей, а для внутренних пользователей - Umbracos. Короче говоря, я пытаюсь интегрировать две системы в один – Computer

0

Я запрограммировал решение ActiveDirectory, измененное: Umbraco.Web \ Security \ WebSecurity.cs, вы можете использовать все, что вы получаете от своего хоста. Я использую аутентификацию ActiveDirectory. Я разработал HybridMembershipProvider для пользователей и пользователей. Его Umbraco 7.5.5., Для ActiveDirectory вам нужно изменить проверку пароля в провайдере, потому что проверка пароля в ActiveDirectory делегирована Windows.

/// <summary> 
/// Ensures that a back office user is logged in 
/// </summary> 
/// <returns></returns> 
public bool IsAuthenticated() 
{ 
    bool isAuthenticated = false; 

    if (_httpContext.User.Identity.IsAuthenticated) 
    { 
     // user is already authenticated in umbraco. 
     if (_httpContext.GetCurrentIdentity(false) != null) 
      isAuthenticated = true; 

     // check user in umbraco, and if found set as authenticated. 
     else 
     { 
      // active directory username. 
      var userName = _httpContext.User.Identity.Name.Replace("MOD\\", string.Empty); 
      var result = SignInManager.PasswordSignInAsync(userName, string.Empty, isPersistent: true, shouldLockout: true).Result; 
      if (result == SignInStatus.Success) 
      { 
       // log this user in backoffice. 
       var user = GetBackOfficeUser(_httpContext.User.Identity.Name.Replace("MOD\\", string.Empty)); 
       PerformLogin(user.Id); 

       // and set as authenticated. 
       isAuthenticated = true; 
      } 
     } 
    } 

    //return _httpContext.User.Identity.IsAuthenticated && _httpContext.GetCurrentIdentity(false) != null; 
    return isAuthenticated; 
} 
+0

У меня нет доступа к Umbraco.Web \ Security \ WebSecurity.cs - где у вас есть доступ к этому файлу? Я заметил, что ваш код возвращает _httpContext.User.Identity, но я хочу переопределить это и использовать свою собственную реализацию (возможно, переопределив файл global.asax) – Computer