ASP.NET делает это на стороне сервера, используя различные методы. Самое простое, это могут быть куки. Обычно люди используют функцию состояния сеанса. Скользящая шкала используется для хранения времени обновления.
Хотя вы можете сделать это в Silverlight, используя нечто вроде изолированного хранилища, оно не будет безопасным: изолированное хранилище не зашифровано и находится в локальной системе, в отличие от ASP.NET, где сервер может хранить информация, где это безопасно.
Что касается того, что хранить: вы действительно не хотите. Вы должны позволить своему пользователю войти в систему, который попадает на веб-сервис на хосте. Тогда вы просто полагаетесь на ASP.NET или другую систему аутентификации на стороне сервера. Вы можете создать «perma-cookie», но это просто дублирующая функциональность, которая уже работает.