Аутентификация в ASP.NET MVC и AngularJS

225
27 декабря 2017, 17:59

Доброго времени суток! Возникла следующая трудность, при передаче данных о пользователе, прошедшем аутентификацию в приложении ASP.NET MVC на строну AngularJS + ASP.NET WebApi. В обоих приложениях настроена аутентификация пользователей, хотелось бы, чтобы после авторизации пользователя в ASP.NET MVC приложении, пользователь получал доступ (по средствам: cookies, token или SSO) к приложению AngularJS + ASP.NET WebApi.

Единственный рабочий способ к которому я пришел, это создание cookie в приложении MVC (черновой вариант).

ASP.NET MVC:

public void CreateCookie(string user, string password, bool isAuth = false)
{
   const string cookiesName = "AUTH_COOKIES";
   FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), isAuth, password, FormsAuthentication.FormsCookiePath);
   HttpCookie cookies = new HttpCookie(cookiesName)
   {
      Value = FormsAuthentication.Encrypt(ticket),
      Expires = DateTime.Now.Add(FormsAuthentication.Timeout)
   };
   Response.Cookies.Add(cookies);
}

И считывание данного cookie в AngularJS + ASP.NET WebApi по средствам 'ngCookies' и передача в WebApi

AngularJS + ASP.NET WebApi:

public UserInfo GetCookies(string encryptCookie)
{    
    var decryptCookies = FormsAuthentication.Decrypt(encryptCookie);
    return new UserInfo() { Username = decryptCookies.Name, Password = decryptCookies.UserData };
}

Данный способ имеет недостаток в том, что если cookie "жив", то авторизация будет бесконечной, понимаю, что надо ограничить время действия cookie или смотреть на его дату создания.

После изучения различных статей по cookies, token, SSO, запутался в том, какой вариант будет лучшем в данной ситуации?

Аутентификация в приложении AngularJS + ASP.NET WebApi настроена по данной инструкции

Буду благодарен за любые статьи и ссылки.

READ ALSO
Xamarin android не подгружаются файлы проекта?

Xamarin android не подгружаются файлы проекта?

У Xamarin Forms для android проекта хочу разместить изображение по нажатию на кнопкуДля этого в MainPage

213
Недоступная форма

Недоступная форма

Для перемещения окна есть прозрачный Rectangle, но если двигать окно и в этот момент это окно "превращается" в другое:

132
Правильное подключение к серверу TcpClient.ConnectAsync

Правильное подключение к серверу TcpClient.ConnectAsync

После выполнения метода Clientmain выбрасывается исключение ObjectDisposedException (Доступ к ликвидированному объекту невозможен)

195