В настоящее время я пробую 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? Или здесь работает какая-то другая магия?
Надеюсь как-то это уже сделали.
заранее спасибо