- Если пользователь ранее предоставил вам необходимое согласие, Live не предложит пользователю снова предоставить разрешение. Вам не нужно пропускать вручную.
- Я не знаю, какая у вас платформа, но вы можете найти какой-то способ сделать хранилище вашего приложения изолированным или зашифрованным. Важно то, что токен имеет время истечения. Вы также можете рассмотреть возможность использования контроллера, предоставляемого Microsoft, который может обрабатывать все, что связано с Live-входом в систему. Вот мой пример WP8:
Добавьте это в файл 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}" />
Перед этим добавьте эту строку в тот же файл:
xmlns:Controls="clr-namespace:Microsoft.Live.Controls;assembly=Microsoft.Live.Controls"
И элемент управления будет выглядеть так:
![enter image description here](https://i.stack.imgur.com/oCWph.png)
Он будет автоматически обновляться при входе или выходе пользователя.
В своем коде C # добавьте к нему обработчик события OnSessionChanged:
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);
}
}
}