Хорошо, во-первых, 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 полностью, поэтому не забывайте правильно все защищать.