Я сейчас пробую Silverlight с помощью RIA Services. Я реализую простую форму входа в систему. Я также использую предоставленный шаблон доменной службы аутентификации, который генерирует следующий файл:
[EnableClientAccess]
public class AuthenticationDomainService : AuthenticationBase<User>
{
// To enable Forms/Windows Authentication for the Web Application,
// edit the appropriate section of web.config file.
}
public class User : UserBase
{
// NOTE: Profile properties can be added here
// To enable profiles, edit the appropriate section of web.config file.
// public string MyProfileProperty { get; set; }
public int DefaultRows { get; set; }
}
Теперь я могу без проблем входить / выходить из приложения. В приложении Silverlight после входа в систему строка:
WebContext.Current.User.IsAuthenticated;
верните истину.
Тем не менее, мне нужно сохранять это во время сеансов (т.е. когда я перезагружаю страницу, используя F5).
В настоящее время, когда страница перезагружается, я должен повторно войти в систему.
Вот мой логин:
WebContext.Current.Authentication.Login(new LoginParameters(this.UserName, this.Password, true, string.Empty),
(LoginOperation loginOperation) =>
{
if (loginOperation.LoginSuccess)
{
NotificationMessage Message = new NotificationMessage(this, null, "CLOSE");
Messenger.Default.Send<NotificationMessage>(Message);
}
}, null);
Третий параметр метода Login - это параметр IsPersistent. Из документов MSDN я бы подумал, что при значении true при следующей загрузке страницы пользователь все равно будет авторизован. Однако это не так.
Нужно ли мне каким-то образом читать cookie, который был установлен внутри, а затем входить в фоновый режим с именем пользователя / паролем, предоставленным этим cookie? Или здесь работает какая-то другая магия?
Я надеюсь, что как-то уже сделал это.
Заранее спасибо