Example #1
0
        public ActionResult Signout()
        {
            String userId = Session["userId"] as String;

            if (!String.IsNullOrEmpty(userId))
            {
                StoredCredentialsDBContext db = new StoredCredentialsDBContext();
                StoredCredentials          sc =
                    db.StoredCredentialSet.FirstOrDefault(x => x.UserId == userId);

                if (sc != null)
                {
                    // Revoke the token.
                    UriBuilder builder = new UriBuilder(OAUTH2_REVOKE_ENDPOINT);
                    builder.Query = "token=" + sc.RefreshToken;

                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(builder.Uri);
                    request.GetResponse();

                    db.StoredCredentialSet.Remove(sc);
                }
                Session.Remove("userId");
            }
            return(Redirect(Url.Action("Index", "Main")));
        }
Example #2
0
 /// <summary>
 /// Retrieved stored credentials for the provided user ID.
 /// </summary>
 /// <param name="userId">User's ID.</param>
 /// <returns>Stored GoogleAccessProtectedResource if found, null otherwise.</returns>
 public static IAuthorizationState GetStoredCredentials(String userId)
 {
     StoredCredentialsDBContext db = new StoredCredentialsDBContext();
     StoredCredentials sc = db.StoredCredentialSet.FirstOrDefault(x => x.UserId == userId);
     if (sc != null)
     {
         return new AuthorizationState()
         {
             AccessToken = sc.AccessToken,
             RefreshToken = sc.RefreshToken
         };
     }
     return null;
 }
        /// <summary>
        /// Retrieved stored credentials for the provided user ID.
        /// </summary>
        /// <param name="userId">User's ID.</param>
        /// <returns>Stored GoogleAccessProtectedResource if found, null otherwise.</returns>
        static IAuthorizationState GetStoredCredentials(String userId)
        {
            StoredCredentialsDBContext db = new StoredCredentialsDBContext();
            StoredCredentials          sc = db.StoredCredentialSet.FirstOrDefault(x => x.UserId == userId);

            if (sc != null)
            {
                return(new AuthorizationState()
                {
                    AccessToken = sc.AccessToken, RefreshToken = sc.RefreshToken
                });
            }
            return(null);
        }
        public void Can_Get_Credentials()
        {
            using (var context = new StoredCredentialsDBContext())
            {
                context.Database.Connection.Open();
                var credentials = context.StoredCredentialSet.ToList();
                foreach (var storedCredential in credentials)
                {
                    Console.WriteLine(storedCredential.UserId);
                }

                Assert.IsNotNull(context.StoredCredentialSet.ToList());
            }
        }
        /// <summary>
        /// Store OAuth 2.0 credentials in the application's database.
        /// </summary>
        /// <param name="userId">User's ID.</param>
        /// <param name="credentials">The OAuth 2.0 credentials to store.</param>
        static void StoreCredentials(String userId, IAuthorizationState credentials)
        {
            StoredCredentialsDBContext db = new StoredCredentialsDBContext();
            StoredCredentials          sc = db.StoredCredentialSet.FirstOrDefault(x => x.UserId == userId);

            if (sc != null)
            {
                sc.AccessToken  = credentials.AccessToken;
                sc.RefreshToken = credentials.RefreshToken;
            }
            else
            {
                db.StoredCredentialSet.Add(new StoredCredentials {
                    UserId = userId, AccessToken = credentials.AccessToken, RefreshToken = credentials.RefreshToken
                });
            }
            db.SaveChanges();
        }
Example #6
0
 /// <summary>
 /// Store OAuth 2.0 credentials in the application's database.
 /// </summary>
 /// <param name="userId">User's ID.</param>
 /// <param name="credentials">The OAuth 2.0 credentials to store.</param>
 public static void StoreCredentials(String userId, IAuthorizationState credentials)
 {
     StoredCredentialsDBContext db = new StoredCredentialsDBContext();
     StoredCredentials sc = db.StoredCredentialSet.FirstOrDefault(x => x.UserId == userId);
     if (sc != null)
     {
         sc.AccessToken = credentials.AccessToken;
         sc.RefreshToken = credentials.RefreshToken;
     }
     else
     {
         db.StoredCredentialSet.Add(new StoredCredentials
         {
             UserId = userId,
             AccessToken = credentials.AccessToken,
             RefreshToken = credentials.RefreshToken
         });
     }
     db.SaveChanges();
 }
        /// <summary>
        /// Inserts a timeline item to all users (up to 10).
        /// </summary>
        /// <param name="controller">Controller calling this method.</param>
        /// <returns>Status message.</returns>
        private static String InsertItemAllUsers(MainController controller)
        {
            StoredCredentialsDBContext db = new StoredCredentialsDBContext();
            int userCount = db.StoredCredentialSet.Count();

            if (userCount > 10)
            {
                return("Total user count is " + userCount +
                       ". Aborting broadcast to save your quota");
            }
            else
            {
                TimelineItem item = new TimelineItem()
                {
                    Text         = "Hello Everyone!",
                    Notification = new NotificationConfig()
                    {
                        Level = "DEFAULT"
                    }
                };

                foreach (StoredCredentials creds in db.StoredCredentialSet)
                {
                    AuthorizationState state = new AuthorizationState()
                    {
                        AccessToken  = creds.AccessToken,
                        RefreshToken = creds.RefreshToken
                    };
                    MirrorService service = new MirrorService(new BaseClientService.Initializer()
                    {
                        Authenticator = Utils.GetAuthenticatorFromState(state)
                    });
                    service.Timeline.Insert(item).Fetch();
                }
                return("Successfully sent cards to " + userCount + " users.");
            }
        }
        public ActionResult Signout()
        {
            String userId = Session["userId"] as String;

            if (!String.IsNullOrEmpty(userId))
            {
                StoredCredentialsDBContext db = new StoredCredentialsDBContext();
                StoredCredentials sc =
                    db.StoredCredentialSet.FirstOrDefault(x => x.UserId == userId);

                if (sc != null)
                {
                    // Revoke the token.
                    UriBuilder builder = new UriBuilder(OAUTH2_REVOKE_ENDPOINT);
                    builder.Query = "token=" + sc.RefreshToken;

                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(builder.Uri);
                    request.GetResponse();

                    db.StoredCredentialSet.Remove(sc);
                }
                Session.Remove("userId");
            }
            return Redirect(Url.Action("Index", "Main"));
        }
        /// <summary>
        /// Inserts a timeline item to all users (up to 10).
        /// </summary>
        /// <param name="controller">Controller calling this method.</param>
        /// <returns>Status message.</returns>
        private static String InsertItemAllUsers(MainController controller)
        {
            StoredCredentialsDBContext db = new StoredCredentialsDBContext();
            int userCount = db.StoredCredentialSet.Count();

            if (userCount > 10)
            {
                return "Total user count is " + userCount +
                    ". Aborting broadcast to save your quota";
            }
            else
            {
                TimelineItem item = new TimelineItem()
                {
                    Text = "Hello Everyone!",
                    Notification = new NotificationConfig() { Level = "DEFAULT" }
                };

                foreach (StoredCredentials creds in db.StoredCredentialSet)
                {
                    AuthorizationState state = new AuthorizationState()
                    {
                        AccessToken = creds.AccessToken,
                        RefreshToken = creds.RefreshToken
                    };
                    MirrorService service = new MirrorService(new BaseClientService.Initializer()
                    {
                        Authenticator = Utils.GetAuthenticatorFromState(state)
                    });
                    service.Timeline.Insert(item).Fetch();
                }
                return "Successfully sent cards to " + userCount + " users.";
            }
        }