Я разрабатываю приложение ASP.Net MVC 2 в качестве составного приложения на SalesForce.com. Для тех, кто не знаком с SalesForce.com, это платформа CRM в Интернете. Что это за составное приложение, просто показано внутри фрейма в отдельной вкладке.
Поэтому, когда пользователь входит на сайт salesforce.com, он видит несколько вкладок. Мое приложение доступно, когда пользователь нажимает на вкладку моего приложения. Затем SalesForce.com передает URL-адрес для идентификатора сеанса salesforce моего приложения, который я могу использовать для доступа к данным salesforce без необходимости входа пользователя.
Я, вероятно, потерял много пользователей, которые просто сказали бы: «Эй, это специфический вопрос salesforce.com».
Ну, я думаю, что это не конкретный отдел продаж
Хорошо, продолжайте, люди советуют, чтобы аутентификация ASP.Net MVC 2 сохранялась в файле cookie на клиентском компьютере пользователя. Таким образом, в основном, я сохраняю идентификатор пользователя в cookie, а затем, если мне нужна информация о пользователе, я просто получаю его.
В моем случае я вижу две проблемы:
1. Я использую информацию о клиенте довольно часто, поэтому я не хочу каждый раз запрашивать salesforce.com. Это хорошая идея, чтобы сериализовать и зашифровать информацию пользователя в куки? Кроме того, информация о пользователях - это объект с двумя свойствами объекта: одно содержит набор примитивов и перечислений для описания пользователя salesforce, а другой - набор примитивов и перечислений для описания пользователя в моем локальном приложении.
2. Мое приложение запускается изнутри iframe, и, насколько мне известно, будут проблемы с сохранением cookie на компьютере пользователя. Я не уверен, правда ли это. Также, когда пользователь выходит из Salesforce, мой файл cookie должен быть признан недействительным / удален с компьютера пользователя.
Что я сейчас делаю, так это то, что я храню информацию о всех пользователях в сеансе без использования файлов cookie. Я просто не могу понять, почему это было бы плохой идеей. Я имею в виду, что прочитал информацию об угоне сеанса и истечении срока его действия.
Но с точки зрения перехвата сеанса, если я зашифрую и сохраню идентификатор пользователя в cookie-файле и сохраню объект пользователя в кэше, а кто-то украдет сеанс, что кто-то тоже получает кэш и получает объект пользователя правильно?
С точки зрения истечения сеанса должен быть способ позаботиться о том, что я не уверен, как именно это делается, но я знаю, что это можно сделать в ASP.Net. Сохраняться в SQL-сервере, вероятно.
Буду очень признателен за помощь в определении того, что лучше всего делать с аутентификацией в ASP.net MVC 2 в текущем контексте (помните, что мое приложение - iframe).
С уважением,
Kos