我正在开发Windows Phone 8应用程序,在第一次运行时,我允许用户从他的Microsoft帐户进行身份验证。用户凭证保存得很好,但每次我运行应用程序时都会出现权限屏幕(“允许此应用程序访问您的信息”)。
如何保存我的选择并只显示一次权限屏幕(第一次运行app)?
代码片段:
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;
}在构造函数(公共MainPage())中:
(DataContext as MainViewModel).User = await Authenticate();发布于 2014-01-29 22:14:35
这段代码不适用于我在模拟器上的实时账号。
它在具有其他帐户的设备和仿真器上工作良好。
发布于 2013-03-06 00:22:49
你的应用需要wl.offline_access作用域,这样才不会一遍又一遍地请求身份验证。
wl.offline_access
http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlofflineaccess
作用域和权限(Live Connect)
http://msdn.microsoft.com/en-us/library/live/hh243646.aspx
这是我用来发现offline_access的帖子
http://dotnet.dzone.com/articles/things-know-about-uploading?mz=27249-windowsphone7
https://stackoverflow.com/questions/15222234
复制相似问题