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)); }
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); }