2012-02-06 5 views
0

Меня попросили не использовать Session в любом месте моего кода. В настоящее время я проверяю пользователя на интерфейс веб-служб и сохраняю токен доступа (объект) в сеансе и повторно использую его для последующих запросов. Что было бы хорошим местом для хранения на серверной стороне? Я не хочу отправлять его клиенту по соображениям безопасности.jquery ajax call - альтернатива использованию сеанса?

Вот код -

var person; 
    $.ajax({ 
     url: 'Default.aspx/LoadPerson', 
     data: JSON.stringify({ id: 1 }), 
     type: 'POST', 
     contentType: 'application/json;', 
     dataType: 'json', 
     success: function (result) { 
      person = result.d; 
     } 
    }); 

Мой метод веб-службы выглядит примерно так -

[WebMethod] 
    public static Person LoadPerson(int i) 
    { 
     var person = new Person(); 
     person.Name = "Bob"; 
     var userToken = SetupWebserviceUser(); 
     HttpContext.Current.Session["UserToken"] = userToken(); 
     // Call web service, get data. 
     return person; 
    } 
+0

Почему вы не можете использовать сеанс? Это кажется идеальным местом для хранения этих данных. Другой вариант - хранить токен в базе данных или в памяти на сервере и отслеживать пользователя с помощью файла cookie, но это точно, как работает сеанс в .net ... – Joel

+0

Приложение будет интегрировано в сайт Sharepoint на веб-ферме. Наш администратор попросил меня не использовать сеанс. – tempid

ответ

0

Что бы быть хорошим местом, чтобы сохранить его на стороне сервера?

Осталось не так много вариантов, если вы не хотите хранить данные на клиенте или в виде просмотра.
Единственные параметры, о которых я могу думать, это DataBase \ static variable \ XML-файл.

+0

Будет ли он сохраняться в данных через вызовы, если я помещу его в статическую переменную? Редактировать: Это так! Мне просто потребовалось три свойства от объекта токена доступа. Я создал три статические переменные, установил значение и смог получить к нему доступ в последующих вызовах. Теперь, как я могу распоряжаться этими данными? – tempid

+0

Static может быть потенциально опасным, помните, что веб-доступ многопоточен и убедитесь, что вы не можете получить к нему доступ в качестве другого пользователя, который не должен быть разрешен, пока первый пользователь все еще активен. – JamieSee

+0

У меня есть глобальная функция загрузки, которая вызывается только один раз, когда страница загружается. Я явно установил переменные в нуль в начале этой функции. Теперь работа хорошая. Благодаря! – tempid

Смежные вопросы