- Nếu trước đây người dùng đã đồng ý bạn cần, Trực tiếp sẽ không nhắc người dùng cấp lại. Bạn không cần bỏ qua thủ công.
- Tôi không biết nền tảng của bạn là gì, nhưng bạn có thể thấy một cách nào đó để làm cho bộ nhớ của ứng dụng bị cô lập hoặc được mã hóa. Điều quan trọng là mã thông báo có thời gian hết hạn. Bạn cũng có thể xem xét sử dụng bộ điều khiển mà Microsoft cung cấp, có thể xử lý tất cả những thứ có liên quan đến Đăng nhập trực tiếp. Dưới đây là ví dụ WP8 của tôi:
Thêm này trong file XAML:
<Controls:SignInButton Grid.Row="0" ClientId="yourid" Scopes="wl.offline_access wl.skydrive_update" HorizontalAlignment="Right" VerticalAlignment="Bottom" SessionChanged="OnSessionChanged"
Margin="0,0,0,0" Width="160" Height="70" Background="Transparent" BorderBrush="{StaticResource TransparentBrush}" />
Trước đó, thêm dòng này vào cùng một file:
xmlns:Controls="clr-namespace:Microsoft.Live.Controls;assembly=Microsoft.Live.Controls"
Và sự kiểm soát sẽ trông giống như này:
Nó sẽ tự động cập nhật khi người dùng đăng nhập hoặc đăng xuất.
Trong mã # C của bạn, thêm xử lý sự kiện OnSessionChanged với nó:
private void OnSessionChanged(object sender, LiveConnectSessionChangedEventArgs e)
{
//sign in
if (e.Error != null)
{
MessageBox.Show(e.Error.Message);
return;
}
if (e.Status == LiveConnectSessionStatus.Connected)
{
((App) Application.Current).Session = e.Session;
connectClient = new LiveConnectClient(((App) Application.Current).Session);
}
}
}