public override IStorageProviderSession CreateSession(ICloudStorageAccessToken token, ICloudStorageConfiguration configuration) { var skydriveToken = token as OAuth20Token; if (skydriveToken == null) { throw new ArgumentException("Cannot create skydrive session with given token", "token"); } if (skydriveToken.IsExpired) { token = SkyDriveAuthorizationHelper.RefreshToken(skydriveToken); } return(new SkyDriveStorageProviderSession(token, this, configuration)); }
private static OAuth20Token GetValidToken(IStorageProviderSession session) { var token = session.SessionToken as OAuth20Token; if (token == null) { throw new ArgumentException("Can not retrieve valid oAuth 2.0 token from given session", "session"); } if (token.IsExpired) { token = (OAuth20Token)SkyDriveAuthorizationHelper.RefreshToken(token); var sdSession = session as SkyDriveStorageProviderSession; if (sdSession != null) { sdSession.SessionToken = token; } } return(token); }
protected void Page_Load(object sender, EventArgs e) { if (Session.IsReadOnly) { SubmitError("No session is availible.", Source); return; } var redirectUri = Request.GetUrlRewriter().GetLeftPart(UriPartial.Path); if (!string.IsNullOrEmpty(Request[AuthorizationCodeUrlKey])) { //we ready to obtain and store token var authCode = Request[AuthorizationCodeUrlKey]; var accessToken = SkyDriveAuthorizationHelper.GetAccessToken(ImportConfiguration.SkyDriveAppKey, ImportConfiguration.SkyDriveAppSecret, redirectUri, authCode); //serialize token var config = CloudStorage.GetCloudConfigurationEasy(nSupportedCloudConfigurations.SkyDrive); var storage = new CloudStorage(); var base64AccessToken = storage.SerializeSecurityTokenToBase64Ex(accessToken, config.GetType(), new Dictionary <string, string>()); //check and submit storage.Open(config, accessToken); var root = storage.GetRoot(); if (root != null) { SubmitToken(base64AccessToken, Source); } else { SubmitError("Failed to open storage with token", Source); } } else { var authCodeUri = SkyDriveAuthorizationHelper.BuildAuthCodeUrl(ImportConfiguration.SkyDriveAppKey, null, redirectUri); Response.Redirect(authCodeUri); } }
public void RefreshTokenTest() { var token = GetAccessToken(); var refreshed = SkyDriveAuthorizationHelper.RefreshToken(token); }