Example #1
0
        public async Task AddLoginAsync(T user, UserLoginInfo loginInfo)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (loginInfo == null)
            {
                throw new ArgumentNullException("loginInfo");
            }

            var login     = new TableUserLogin(user.Id, loginInfo.LoginProvider, loginInfo.ProviderKey);
            var operation = TableOperation.Insert(login);
            await _loginTable.ExecuteAsync(operation);

            var loginIndexItem = new TableUserLoginProviderKeyIndex(user.Id, login.ProviderKey, login.LoginProvider);
            await _loginProviderKeyIndexTable.ExecuteAsync(TableOperation.InsertOrReplace(loginIndexItem));
        }
Example #2
0
        public async Task RemoveLoginAsync(T user, UserLoginInfo loginInfo)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (loginInfo == null)
            {
                throw new ArgumentNullException("loginInfo");
            }

            TableUserLogin login = new TableUserLogin(user.Id, loginInfo.LoginProvider, loginInfo.ProviderKey);

            login.ETag = "*";
            TableOperation operation = TableOperation.Delete(login);
            await _loginTable.ExecuteAsync(operation);

            TableUserLoginProviderKeyIndex loginIndexItem = new TableUserLoginProviderKeyIndex(user.Id, login.ProviderKey, login.LoginProvider);

            loginIndexItem.ETag = "*";
            TableOperation indexOperation = TableOperation.Delete(loginIndexItem);
            await _loginProviderKeyIndexTable.ExecuteAsync(indexOperation);
        }