我正在开发Windows Phone 8应用程序,并且在第一次运行时我让用户从他的Microsoft帐户授权。 用户凭据保存得很好,但每次我运行应用程序时都会出现权限屏幕(“让这个应用程序访问您的信息”)。
如何只保存一次我的选择和显示权限屏幕(我第一次运行应用程序时)?
代码段:
private LiveConnectSession _session;
private async Task<Users> Authenticate()
{
var liveIdClient = new LiveAuthClient("XXXXXXXXXXXXXXX");
while (_session == null)
{
var result = await liveIdClient.LoginAsync(new[]
{
"wl.signin",
"wl.offline_access"
});
if (result.Status == LiveConnectSessionStatus.Connected)
{
_session = result.Session;
var client = new LiveConnectClient(result.Session);
var meResult = await client.GetAsync("me");
var user = await App.MobileService.LoginAsync(result.Session.AuthenticationToken);
return new Users
{
UserName = user.UserId,
RealName = string.Format("{0} {1}", meResult.Result["first_name"], meResult.Result["last_name"]),
TimeStamp = DateTime.Now,
IsAuthorised = false
};
}
else
{
_session = null;
MessageBox.Show("You must log in.", "Login Required", MessageBoxButton.OK);
}
}
return null;
}
在构造函数(public MainPage())中:
(DataContext as MainViewModel).User = await Authenticate();
答案 0 :(得分:0)
您的应用需要wl.offline_access范围,以便不会反复请求身份验证。
wl.offline_access
http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlofflineaccess
范围和权限(实时连接)
http://msdn.microsoft.com/en-us/library/live/hh243646.aspx
这是我用来发现offline_access的帖子
http://dotnet.dzone.com/articles/things-know-about-uploading?mz=27249-windowsphone7
答案 1 :(得分:-1)
该代码无法在我的模拟器上使用我的真实帐户。
它在设备和模拟器上与其他帐户一起运行良好。