예제 #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 userLogin = new UserLoginEntity(user.Id, loginInfo.LoginProvider, loginInfo.ProviderKey);
            await _userLoginTable.ExecuteAsync(TableOperation.Insert(userLogin));

            var userLoginProviderKeyIndex = new UserLoginProviderKeyIndexEntity(user.Id, userLogin.ProviderKey, userLogin.LoginProvider);
            await _userLoginProviderKeyIndexTable.ExecuteAsync(TableOperation.InsertOrReplace(userLoginProviderKeyIndex));
        }
예제 #2
0
        public async Task RemoveLoginAsync(T user, UserLoginInfo loginInfo)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (loginInfo == null)
            {
                throw new ArgumentNullException("loginInfo");
            }

            var userLogin = new UserLoginEntity(user.Id, loginInfo.LoginProvider, loginInfo.ProviderKey)
            {
                ETag = "*"
            };
            await _userLoginTable.ExecuteAsync(TableOperation.Delete(userLogin));

            var userLoginProviderKeyIndex = new UserLoginProviderKeyIndexEntity(user.Id, userLogin.ProviderKey, userLogin.LoginProvider)
            {
                ETag = "*"
            };
            await _userLoginProviderKeyIndexTable.ExecuteAsync(TableOperation.Delete(userLoginProviderKeyIndex));
        }