protected void BtnRevoke_Click(object sender, EventArgs e) { if (XmlDoc.HasChildNodes == false) { XmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); } string Access_Token = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[AccessToken].Value; string Refresh_Token = XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[RefreshToken].Value; //Attempt the revoke from google //if successful then do a db / xml delete as well if (GoogleCalendarManager.RevokeAccessToken(Access_Token, Refresh_Token) == true) { XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[AccessToken].Value = ""; XmlDoc.DocumentElement.SelectSingleNode("//User[@UserID='1']").Attributes[RefreshToken].Value = ""; XmlDoc.Save(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\XMLfile.xml"); LblMessage.Text = "Rights revoked successfully.You can <a href='https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en' target='blank'>view</a> that you gmail account is not linked with your calendar application anymore"; PnlLogin.Visible = false; PnlRegister.Visible = true; PnlEvents.Visible = false; } }
public static void RevokeExpiredAccess(string AccessTokenStatus, string RefreshTokenStatus, string UserName) { string Access_Token = AccessTokenStatus; string Refresh_Token = RefreshTokenStatus; //Attempt the revoke from google //if successful then do a db / if (GoogleCalendarManager.RevokeAccessToken(Access_Token.ToString(), Refresh_Token.ToString()) == true) { SqlConnection konekcija1 = new SqlConnection(); konekcija1.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda1 = new SqlCommand(); komanda1.Connection = konekcija1; komanda1.CommandText = "UPDATE Users SET AccessToken=@AccessToken,RefreshToken=@RefreshToken WHERE UserName=@UserName"; komanda1.Parameters.Add("@AccessToken", ""); komanda1.Parameters.Add("@RefreshToken", ""); komanda1.Parameters.Add("@UserName", UserName); try { konekcija1.Open(); komanda1.ExecuteNonQuery(); } catch (Exception ex) { } finally { konekcija1.Close(); }; } }
// odjava na access token i refresh token protected void btnGoogleRevoke_Click(object sender, EventArgs e) { string Access_Token = ""; string Refresh_Token = ""; SqlConnection konekcija = new SqlConnection(); konekcija.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda = new SqlCommand(); komanda.Connection = konekcija; komanda.CommandText = "SELECT * FROM Users WHERE UserName=@UserName"; komanda.Parameters.Add("@UserName", (string)Session["UserName"]); try { konekcija.Open(); SqlDataReader citac = komanda.ExecuteReader(); while (citac.Read()) { if (citac["UserName"].ToString().ToLower() == ((string)Session["UserName"]).ToLower()) { Access_Token = (string)citac["AccessToken"]; Refresh_Token = (string)citac["RefreshToken"]; } } citac.Close(); } catch (Exception ex) { lblMessage.Text = ex.ToString(); } finally { konekcija.Close(); } //Attempt the revoke from google //if successful then do a db / xml delete as well if (GoogleCalendarManager.RevokeAccessToken(Access_Token.ToString(), Refresh_Token.ToString()) == true) { SqlConnection konekcija1 = new SqlConnection(); konekcija1.ConnectionString = ConfigurationManager.ConnectionStrings["mojaKonekcija"].ConnectionString; SqlCommand komanda1 = new SqlCommand(); komanda1.Connection = konekcija1; komanda1.CommandText = "UPDATE Users SET AccessToken=@AccessToken,RefreshToken=@RefreshToken WHERE UserName=@UserName"; komanda1.Parameters.Add("@AccessToken", ""); komanda1.Parameters.Add("@RefreshToken", ""); komanda1.Parameters.Add("@UserName", (string)Session["UserName"]); try { konekcija1.Open(); komanda1.ExecuteNonQuery(); } catch (Exception ex) { lblMessage.Text = ex.ToString(); } finally { konekcija1.Close(); }; } Response.Redirect("GoogleCalendarRegistration.aspx?message=Revoke"); }