Я пишу сайт asp.net mvc C#, который не будет использовать сеансы ... Каковы мои возможности для разделения функций входа без сеансов?asp.net mvc log in architecture options
ответ
Общий подход заключается в использовании файлов cookie. См. Securing and ASP.NET MVC Application.
Спасибо за это, посмотрим ... есть любые другие варианты? – Gary
System.Web.Security.FormsAuthentication использует куки-файлы:
FormsAuthentication.SetAuthCookie(userName, rememberMe);
Нет сеанс не существует используется. Конечно, если вы хотите больше, чем имя пользователя и isAuthenticated, вам понадобится другой способ сохранить это состояние. Вашими реальными альтернативами являются файлы cookie или URL-адреса, ни один из которых не является общепринятым по другим причинам.
Сессия не является злом, особенно учитывая ваши варианты размещения данных сеанса на общем сервере или экземпляре SQL Server.
Сессия, безусловно, может быть подвергнута насилию, и ваша масштабируемость будет страдать, но я бы не отказался от сеанса полностью, если бы не было других основных проблем.
Если вы должны полностью отказаться от сеанса, вам придется либо воссоздать состояние при каждом вызове, либо дорогостоящее предложение, либо вам придется создать свой собственный механизм хранения состояний, который вернет нас к стандартному хранилищу сеансов ASP.NET альтернативы.
У вас в основном есть 3 варианта, которые я могу придумать, для аутентификации HTTP-запросов.
1) только печенье, где вы установите куки на компьютере пользователей необходимой информацией, необходимой для выявления их на следующий запрос
2) Sessions. Сессия будет обычно также использует файлы cookie (для хранения информации о сеансе), но не обязательно (см. http://msdn.microsoft.com/en-us/library/aa479314.aspx)
3) Аутентификация без гражданства. Это действительно используется только для не-браузерных HTTP-клиентов, вызывающих веб-службы. Это включает в себя клиент, который подписывает HTTP-запрос с помощью комбинации открытого/закрытого ключа, которую сервер может затем аутентифицировать. Примером протокола аутентификации без аутентификации является OAuth (хотя OAuth как спецификация действительно ориентирована на авторизацию, но авторизация по своей природе требует аутентификации).
См. Web authentication state - Session vs Cookie vs? для дополнительной информации о файлах cookie и сеансах.
- 1. ASP.NET MVC Architecture
- 2. ASP.Net MVC View Architecture
- 3. Asp.net MVC Architecture
- 4. ASP.net MVC Controller Architecture
- 5. ASP.NET MVC & Component Architecture
- 6. ASP.Net MVC Architecture - Местоположение ViewModels
- 7. MVC Architecture
- 8. MVC Architecture
- 9. Asp.Net Identity Log-in After Timeout
- 10. ASP.NET MVC application architecture «руководящие принципы»
- 11. ASP.Net Identity web api mvc architecture
- 12. ASP.NET Service Oriented Architecture
- 13. Нокаут дети детей loading/options in MVC
- 14. Swift plug-in architecture
- 15. jQuery MVC architecture
- 16. Клиентский сервер MVC Architecture
- 17. URLRewriting in asp.net MVC
- 18. Static in asp.net mvc
- 19. pagination in asp.net mvc
- 20. Thickbox in asp.net mvc
- 21. FCKEditor in asp.net-mvc
- 22. jqgrid in asp.net mvc
- 23. Spinner in asp.net mvc
- 24. readonly in asp.net mvc
- 25. MVC Onion architecture, некоторые вопросы
- 26. ASP.NET MVC (2) log lognet pattern
- 27. ASP Asp.Net Core Architecture
- 28. ASP.Net Web Application Architecture
- 29. asp.net web api architecture
- 30. $ (this) in plugin options
Почему вы не используете сеансы? Есть несколько, о которых я могу думать, и каждый из них слегка изменил бы то, как я бы ответил на этот вопрос. – Matt
, вы также можете найти этот СОСТОЙНЫЙ вопрос полезным: http://stackoverflow.com/questions/356562/web-authentication-state-session-vs-cookie-vs – Matt