Как настроить просмотр входа в систему (аутентификацию пользователя) в шаблоне SPA HotTowel?

Некоторые шаблоны одностраничных приложений (SPA) в VS2012 MVC4 имеют встроенную аутентификацию. HotTowel SPA Template не поддерживает.

Как правильно реализовать аутентификацию пользователя (экран входа в систему) в SPA HotTowel? HotTowel использует Durandal JS, поэтому я предполагаю, что вопрос действительно в том, как реализовать аутентификацию пользователя с Durandal JS.


person mitaka    schedule 17.04.2013    source источник
comment
Какую аутентификацию вы ищете?   -  person Evan Larsen    schedule 19.04.2013
comment
Настолько просто, насколько это возможно. Просто для аутентификации пользователей по сохраненным в базе данных именам пользователей и паролям. После успешного входа в систему загрузится SPA.   -  person mitaka    schedule 19.04.2013
comment
Я тоже думал о безопасности. Использование [ValidateAntuForgeryToken] с контроллером Breeze.js, но это часть другого вопроса.   -  person mitaka    schedule 19.04.2013
comment
Тогда я бы просто использовал базовую аутентификацию. asp.net/web-api/overview/security/basic-authentication < / а>   -  person Evan Larsen    schedule 23.04.2013


Ответы (3)


Я создал стартовый шаблон с включенной аутентификацией и авторизацией

Возможно, поможет ...

Github => https://github.com/yagopv/durandalauth

Пример сайта => https://durandalauth.azurewebsites.net/

person yagopv    schedule 23.07.2013
comment
в вашем приложении durandalauth, как вам удалось сохранить веб-токен json? Использует ли он сеансы asp.net или cookie на стороне клиента? - person Siddharth Pandey; 16.01.2014
comment
Он использует локальное или сеансовое хранилище. Если вы посмотрите на github.com/ yagopv / DurandalAuth / blob / master / DurandalAuth.Web / App /, вы можете увидеть подробности. Следующие функции заботятся об управлении локальным хранилищем [getSecurityHeaders (), setAccessToken (accessToken, persistent), clearAccessToken ()]. Вы должны включать заголовки в каждый запрос ajax, используя getSecurityHeaders (). До свидания!! - person yagopv; 17.01.2014
comment
Просматривая свои материалы, вы хотите, чтобы в web.config были жестко запрограммированы имя пользователя и пароль для вашей базы данных? Также вы можете включить сценарии создания базы данных, чтобы мы могли работать с нашей собственной базой данных :) В остальном пока неплохо. - person Scott Alexander; 30.12.2015
comment
Не обращайте внимания на мой последний бит о сценариях базы данных, просто нашел миграцию сущностей. - person Scott Alexander; 30.12.2015

Похоже, у группы Google Durandal JS есть ответы, но нет конкретного примера кода.

Аутентификация с помощью Durandal

Хотите добавить аутентификацию в образец SPA, но сохраните это СПА

Идеи Мауро Сервиенти:

Мой бэкэнд предоставляет службу (в моем случае - WebAPI), в которой есть операция getCurrentUser.

Итак, в моем main.js в app.Start () затем обратный вызов перед вызовом app.setRoot. Я вызываю бэкэнд, спрашивая, async, для пользователя, является ли результат действительным пользователем. Я установил корень для основного приложения. shell в противном случае я устанавливаю корень в оболочку входа в систему.

В чем проблема? С точки зрения клиента аутентификация - это просто «флаг», который говорит: хорошо, я знаю, кто вы. Вы можете использовать мощь FormsAuthentication и жить с этим, а затем предоставить действие GET WebAPI, которое позволит вам получить информацию о текущем зарегистрированном пользователе.

person mitaka    schedule 18.04.2013

Как сказал бы Джон Папа, HotTowel - это всего лишь шаблон :). Фактически, во втором курсе SPA в Pluralsight он создает приложение с нуля.

Было бы недостаточно запустить приложение из шаблона SPA, а затем добавить остальные библиотеки, которые есть в HotTowel (Durandal, Breeze и т. Д.)?

Здесь вы можете увидеть сравнение шаблоны asp.net spa

person Scheveningen    schedule 18.04.2013