У мене є веб-додаток, всередині якого єкілька інших веб-додатків. Для їх використання користувачеві потрібно пройти автентифікацію, ввівши пароль імені користувача. Я хочу, щоби користувач увійшов до моєї програми, він повинен автоматично увійти в іншу програму.
Я не хочу зберігати однакові ім’я користувача та пароль для кожної програми, але це буде моєю останньою мірою.
Я можу попросити користувача пройти автентифікацію вперше, і після цього моя програма зможе це зробити.
Який можливий підхід / варіанти я маю у цьому сценарії.
У моїй програмі використовується 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");