2016-07-29 4 views
0

Я пытаюсь реализовать шаблон единого знака для своего веб-приложения в нескольких доменах. Я собирался использовать проверки подлинности форм, но я наткнулся на это:ASP.NET MVC 5 Шаблон одиночного входа без проверки подлинности форм

https://softwareengineering.stackexchange.com/questions/284380/is-formsauthentication-obsolete

Если это устаревшее, что рекомендуемое альтернативное решение? Я такие домены, как:

  • account.domain.com (Пользователи будут войти в систему с помощью этого)
  • app1.domain.com
  • app2.domain.com
  • app3.domain.com

Кроме того, основной проблемой, с которой я столкнулся с проверкой подлинности форм, является идентификация пользователя. У меня есть пользовательский объект, у которого есть ALOT свойств. Хранение и извлечение объекта из сеанса каждый раз - боль. Как я могу преодолеть эту трудность?

+0

Я рекомендую https://github.com/IdentityServer/IdentityServer3, чтобы получить хорошее начало. Он обладает всеми функциями, которые нам нужны. Это просто подключи и играй для аутентификации на основе сингла и токена. – Venky

ответ

0

Вы можете использовать идентификатор ASP.Net с претензиями. Вам не нужно использовать всю идентификацию ASP.Net с шаблоном ASP.Net.

[assembly: OwinStartup(typeof(YOUR_APP.Startup))]  
namespace YOUR_APP 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = "ApplicationCookie", 
       LoginPath = new PathString("/Account/Login"), 
       CookieDomain = ".domain.com", 
      }); 
     } 
    } 
} 

Вы можете прочитать regathering как прикрепить претензии на A primer on OWIN cookie authentication middleware for the ASP.NET developer.

FYI: убедитесь, что вы установили одинаковый машинный ключ во все файлы web.config, чтобы файлы cookie можно было разделить между сайтами.