Хорошо, во-первых, silverlight — это не asp.net, WCF по дизайну не имеет состояния, если иное не создано для сохранения состояния.
Затем, если вы хотите сохранить состояние в Silverlight 3, вы можете просто создать статический класс со статическими свойствами и поддерживать эти значения на разных страницах. Но это не элегантное решение. Это возможно, поскольку SL — это среда выполнения на стороне клиента, а ваше приложение существует в сборке xap, которая загружается при переходе по URL-адресу, поэтому в основном это похоже на загрузку настольного приложения Windows, а затем запуск в ограниченном контексте безопасности. Я не хочу вдаваться в последствия этого сейчас, но важно, чтобы вы знали, что это существует.
Лучший способ решить вашу проблему - использовать IsolatedStorage следующим образом.
IsolatedStorageSettings.ApplicationSettings.Remove("UserName");
IsolatedStorageSettings.ApplicationSettings.Add("UserName", UserName);
IsolatedStorageSettings.ApplicationSettings.Remove("Password");
IsolatedStorageSettings.ApplicationSettings.Add("Password", UserPassword);
Делая это, вы можете фактически сохранить данные в настройках приложения и повторно использовать их при следующем запуске приложения. Помните, что все, что хранится в IsolatedStorage, в основном представляет собой открытый текст, доступный только из того же домена/сайта.
Вы должны защитить свою службу WCF, используя одну из многих доступных схем безопасности, в противном случае информация, которую SL3 передает службе WCF, будет в открытом виде и будет доступна для чтения любому, кто приложит немного усилий, и любой сможет вызвать вашу службу wcf, минуя ваше приложение SL. полностью, поэтому не забудьте правильно закрепить все.
person
Neil
schedule
21.08.2009