我想登录并获得xamarin形式的cookie。同时,这些数据将一直保留到我注销为止,但是当我注销时,我保存在cookie中的数据将被重置。我该怎么做呢?(实际上,我现在可以登录,但是我不明白保存cookie信息和注销的逻辑)
编辑:我想用AppShell
if (Connectivity.NetworkAccess == NetworkAccess.Internet)
{
var userName = tbName.Text;
var password = tbPassword.Text;
var serviceUrl = "API";
var paramList = new List<ServiceParameterObject>();
paramList.Add(new ServiceParameterObject("_userCode", userName));
paramList.Add(new ServiceParameterObject("_userPassword", password));
var apiResult = ApiResult.SendPostRequestFromBody(serviceUrl, paramList);
if (apiResult.Status)
{
var user = JsonConvert.DeserializeObject<User>(apiResult.Message);
//Preferences.Set("userName", tbName.Text);
//Preferences.Set("Password", tbPassword.Text);
Preferences.Set("userId", user.Id.ToString());
var userIdCookie = Preferences.Get("userId", String.Empty);
await Shell.Current.GoToAsync($"//{nameof(HomePage)}");
}
else
{
await DisplayAlert("Uyarı", "Kullanıcı Adınız veya Şifreniz hatalıdır. Lütfen tekrar deneyiniz.", "Tamam");
}
}
else
{
await DisplayAlert("Uyarı", "İnternet bağlantınız yok. Lütfen Bağlantınızı kontrol edip tekrar deneyiniz", "Tamam");
}
您看过Xamarin表单的安全存储吗?我认为这是你实现理想的最简单的方法。
- 在启动时,查看存储是否存储了任何信息(您的cookie或任何其他认证信息)
- a)如果没有保存,执行login并保存信息
- b)如果有东西被存储,授予访问应用程序并获取存储的信息
- 在注销时,只需清除存储的cookie