/ / Автоматичний вхід кількох веб-додатків - безпека, веб-програми, єдиний вхід

Автоматичне вхід у декілька веб-додатків - безпека, веб-програми, одноразовий вхід

У мене є веб-додаток, всередині якого єкілька інших веб-додатків. Для їх використання користувачеві потрібно пройти автентифікацію, ввівши пароль імені користувача. Я хочу, щоби користувач увійшов до моєї програми, він повинен автоматично увійти в іншу програму.

Я не хочу зберігати однакові ім’я користувача та пароль для кожної програми, але це буде моєю останньою мірою.

Я можу попросити користувача пройти автентифікацію вперше, і після цього моя програма зможе це зробити.

Який можливий підхід / варіанти я маю у цьому сценарії.

У моїй програмі використовується javascript на стороні клієнта.

Дякую

Відповіді:

0 для відповіді № 1

Ви хочете створити щось подібне StackExchange система автентифікації. Можна використовувати печиво для збереження в ньому даних. e.g Ви можете створити файл cookie для входу протягом приблизно 3 днів життя. Це означає, що ваші користувачі можуть увійти в систему приблизно 3 дні. Файли cookie небезпечні (спеціально для зберігання важливих даних, таких як паролі). Щоб захистити файли cookie, ви можете хешувати свої дані. Але навіть роблячи це, користувач може видалити файли cookie з браузера; Або якщо користувач очистить історію свого браузера при виході, файли cookie буде видалено.


Тут є код для створення файлів cookie:

HttpCookie loginCookie = new HttpCookie("LoginCookie");

Після цього ви можете встановити термін дії cookie (час життя):

loginCookie.Expires = DateTime.Now.AddDays(3);

І ви можете вставити в нього дані:

loginCookie.Values.Add("password", "Hashed value of password here");

Для Вийти: Кнопка "Створити" та встановіть цей код у події Click:

 Response.Cookies["LoginCookie"].Expires = DateTime.Now.AddDays(-1);

Краще використовувати сеанси. Вони більш безпечні. Як створити сеанси:

 Session["Password"] = "Hashed value of password here";

І в кнопка виходу (Вилучити всі сеанси):

Session.Abandon();

Видалення конкретного сеансу:

Session.Remove("Password");