protected override async void OnNavigatedTo(NavigationEventArgs e) { Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += _BackRequested; data = (UserAccessToken)e.Parameter; await data.Init(); var imageUrl = "https://twitter.com/" + data.screenName + "/profile_image?size=original"; data.user.profile_image_url_https = imageUrl; viewModel = new AdvancedUser(data); mainGrid.DataContext = viewModel; }
/// <inheritdoc /> public async Task <string> CompleteAuthorization(HttpRequest request, IResponseCookies cookies, CancellationToken cancellationToken) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (cookies == null) { throw new ArgumentNullException(nameof(cookies)); } string code; if (!request.Query.TryGetValue("code", out StringValues stringValues) || stringValues.Count == 0) { return(null); } code = stringValues.First(); logger.LogTrace("CompleteAuthorization for with code: {0}", code); var otr = new OauthTokenRequest(gitHubConfiguration.OauthClientID, gitHubConfiguration.OauthSecret, code); var gitHubClient = gitHubClientFactory.CreateAppClient(); var result = await gitHubClient.Oauth.CreateAccessToken(otr).ConfigureAwait(false); if (result.AccessToken == null) { //user is f*****g with us, don't even bother return(null); } var expiry = DateTimeOffset.UtcNow.AddDays(AccessTokenExpiryDays); var newEntry = new UserAccessToken { Id = Guid.NewGuid(), AccessToken = result.AccessToken, Expiry = expiry }; await databaseContext.UserAccessTokens.AddAsync(newEntry, cancellationToken).ConfigureAwait(false); await databaseContext.Save(cancellationToken).ConfigureAwait(false); cookies.Append(AuthorizationCookie, newEntry.Id.ToString()); if (request.Query.TryGetValue("state", out stringValues) && stringValues.Count > 0) { return(stringValues.First()); } return(null); }
public void Create_TestSuccess() { var userServiceMock = new Mock <IUserService>(); var userService = userServiceMock.Object; var userProfileServiceMock = new Mock <IUserProfileService>(); var userProfileService = userProfileServiceMock.Object; var controllerContextMock = new Mock <ControllerContext>(); var userController = new UserController(userService, userProfileService); userController.ControllerContext = controllerContextMock.Object; var createModel = new CreateViewModel { Username = "******", Password = "******", StreetAddress = "rofl", City = "mao", ZipCode = 1000 }; var credentials = new UserCredentials() { Email = createModel.Email, Password = createModel.Password }; var accessToken = new UserAccessToken("123456"); userServiceMock.Setup(a => a.Create(credentials)).Returns(accessToken); userServiceMock.Setup(a => a.Login(credentials)).Returns(accessToken); var viewResult = userController.Index(createModel) as RedirectToRouteResult; Assert.IsNotNull(viewResult, "Controller did not return a RedirectToRouteResult"); var userProfile = new UserProfile() { Username = createModel.Username, Address = new Address() { Street = createModel.StreetAddress, City = createModel.City, ZipCode = createModel.ZipCode } }; userServiceMock.Verify(a => a.Create(credentials)); userProfileServiceMock.Verify(a => a.UpdateProfile(accessToken, userProfile)); }
public void SendHug(UserAccessToken userAccessToken, string recipientUserId) { _logger.Info("Sending hug from: " + userAccessToken.Email + " to " + recipientUserId); var hug = new Hug() { Created = DateTime.Now, SenderID = userAccessToken.Ticket }; var mongoHug = Mapper.Map <Data.MongoDB.Model.Hug>(hug); _hugRepository.InsertHug(recipientUserId, mongoHug); }
// GET: Auth2 public ActionResult Index() { string code = Request.QueryString["code"]; if (!string.IsNullOrEmpty(code)) { LogService.Write("收到用户授权code:" + code); UserAccessToken t = OAuth2Service.get_accesstoken_bycode(code); LogService.Write("获取到了用户accesstoken:" + t.access_token + ", refresh token:" + t.refresh_token + ", openid=" + t.openid + ", scope:" + t.scope + ", expires_in:" + t.expires_in); return(View()); } return(Content("NO CODE")); }
public UserAccessToken GetNewAccessToken(string wxappid, string appsecret) { UserAccessToken tokeninfo = null; try { string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxappid + "&secret=" + appsecret; string strresult = WXInterfaceHttpRequest(url, "", "get"); tokeninfo = ObjectSeriallizeHelper.JsonToObject <UserAccessToken>(strresult); } catch (Exception ex) { LogWriter.WriteLog(ex); } return(tokeninfo); }
private async Task RefreshToken(UserAccessToken accessToken) { var content = new StringContent( $"client_id={_settings.AppClientId}&client_secret={_settings.AppClientSecret}&refresh_token={accessToken.RefreshToken}&grant_type=refresh_token", Encoding.UTF8, "application/x-www-form-urlencoded"); var client = GetAuthClient(); var result = await client.PostAsync($"{relativeUrlAuthPart}/token", content); var auth = JsonConvert.DeserializeObject <AccessToken>(await result.Content.ReadAsStringAsync()); _userContextLocal.Accounts.Where(x => x.AccessToken == accessToken.AccessToken).ToList().ForEach(x => x.AccessToken = auth.access_token); accessToken.AccessToken = auth.access_token; accessToken.TokenValidUntil = DateTime.Now.AddSeconds(auth.expires_in - 60); accessToken.RefreshToken = auth.refresh_token; UserContextChanged = true; }
public static BaseActionResult DeleteUserAccessToken(UserAccessToken obj4delete) { using (var context = new XiaoluEntities()) { string msg; var repository = new UserAccessTokenRepository(context); if (obj4delete == null) { msg = string.Format(XiaoluResources.MSG_DELETE_SUCCESS, XiaoluResources.STR_USER_ACCESS_TOKEN) + string.Format(XiaoluResources.STR_FAIL_RESAON, XiaoluResources.MSG_OBJECT_IS_NULL); return(new BaseActionResult(false, msg)); } repository.Delete(obj4delete); context.SaveChanges(); msg = string.Format(XiaoluResources.MSG_UPDATE_SUCCESS, obj4delete.AccessToken); return(new BaseActionResult(true, msg)); } }
public async Task <UserAccessToken> CreateUserAccessTokenAsync(int userId, CreateAccessTokenRequest request) { using (var uow = _unitOfWorkFactory.CreateUnitOfWork()) { var token = new UserAccessToken { Id = Guid.NewGuid(), Key = RngHelper.GetRandomHexString(64), Name = request.Name, UserId = userId, DateCreated = _timeService.UtcNow }; uow.UserAccessTokenRepository.Add(token); await uow.SaveChangesAsync(); return(token); } }
public async Task SetSpotifyAccessToken(string userId, BearerAccessRefreshToken token) { await RetryHelper.RetryAsync(async() => { var storedToken = await _data.GetOrDefault(UserAccessToken.CanonicalId(userId), userId); var uat = new UserAccessRefreshToken(userId, token); uat.EnforceInvariants(); if (storedToken == null) { await _data.Create(uat); } else { await _data.Replace(uat, storedToken.ETag); } }, waitMs : 10, logger : _logger); }
public UserAccessToken RegisterToken(string userId) { var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.JwtSecret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, userId) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var accessToken = new UserAccessToken(tokenHandler.WriteToken(token)); return(accessToken); }
public async Task Handle_GetUserAccessTokenCommand_OpenIdOfUserAccessTokenExisted() { //Arrange var expected = new UserAccessToken() { openid = "321", access_token = "1", expires_in = "1", refresh_token = "1", scope = "1" }; var db = new List <UserAccessToken> { new UserAccessToken { openid = "321", access_token = "2", expires_in = "2", refresh_token = "2", scope = "2" } }; communicator.Setup(c => c.GetUserAccessTokenAsync("123")) .Returns(Task.FromResult(expected)); context.SetupGet(c => c.UserAccessTokens).Returns(Mocking.GetMockDbSet(db)); context.Setup(c => c.SaveAsync()).Returns(Task.CompletedTask); var command = new GetUserAccessTokenCommand(code: "123"); var handler = createHandler(); //Act var result = await handler.Handle(command); //Assert communicator.VerifyAll(); context.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, result)); Assert.NotSame(expected, db.FirstOrDefault()); Assert.Equal(expected.access_token, db.FirstOrDefault().access_token); Assert.Equal(expected.expires_in, db.FirstOrDefault().expires_in); Assert.Equal(expected.refresh_token, db.FirstOrDefault().refresh_token); Assert.Equal(expected.scope, db.FirstOrDefault().scope); }
public bool TryGetAccessToken(out UserAccessToken accessToken) { if (CurrentAccessToken != null) { accessToken = CurrentAccessToken; return(true); } string hash; if (TryGetHashFromCookie(out hash)) { accessToken = _memcachedClient.Get <UserAccessToken>(hash); CurrentAccessToken = accessToken; return(accessToken != null); } accessToken = null; return(false); }
public async Task <ActionResult> CreateAccessToken() { var user = await GetApplicationUser(); if (user == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // Tokenの作成 var token = new UserAccessToken() { AccessToken = Guid.NewGuid().ToString(), User = user }; db.AccessTokens.Add(token); await db.SaveChangesAsync(); return(RedirectToAction("AccessTokens")); }
public async Task GetUserAccessTokenAsync_WeChatCommunicator() { //Arrange var expected = new UserAccessToken(); var appid = "wxf1759596e3365d3e"; var code = "123456"; var secret = "50d58aee48c9e5cb8a593b93cc182547"; var service = createService(); http.Setup(h => h.GetAsync <UserAccessToken>($"https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={secret}&code={code}&grant_type=authorization_code")) .Returns(Task.FromResult(expected)); config["AppId"] = appid; config["Secret"] = secret; //Act var actual = await service.GetUserAccessTokenAsync(code); //Assert http.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, actual)); }
public async Task <UserAccessToken> GetSpotifyAccessToken(string userId) { return(await RetryHelper.RetryAsync(async() => { // get User Access Tokens from Cache var cachedToken = await _cache.Get <UserAccessToken>(Key(userId)); // Return cached token if hit if (cachedToken != null) { return cachedToken; } // Get token from storage var storedToken = await _data.GetOrDefault(UserAccessToken.CanonicalId(userId), userId); if (storedToken == null) { return null; } // Store AccessToken (only) in Cache. // Only store tokens that have not yet expired // Set Cache item expiry for when the token is due to expire. // DO NOT cache Refresh Tokens var expiry = storedToken.Expires.Subtract(DateTimeOffset.UtcNow); if (expiry.TotalMilliseconds > 0) { await _cache.Set( Key(userId), new UserAccessToken(storedToken), storedToken.Expires.Subtract(DateTimeOffset.UtcNow)); } return storedToken; }, waitMs : 10, logger : _logger)); }
public void Login_Success() { var accessTokenProviderMock = new Mock <IUserAccessTokenProvider>(); var accessTokenProvider = accessTokenProviderMock.Object; var userServiceMock = new Mock <IUserService>(); var userService = userServiceMock.Object; var userController = new LoginController(userService, accessTokenProvider); var loginModel = new LoginViewModel() { Email = "testuser", Password = "******" }; var credentials = new UserCredentials() { Email = loginModel.Email, Password = loginModel.Password }; var accessToken = new UserAccessToken("123456"); userServiceMock.Setup(a => a.Login(credentials)).Returns(accessToken); var result = userController.Index(loginModel) as RedirectToRouteResult; Assert.IsNotNull(result, "Login Action did not yield a Redirection"); Assert.AreEqual(result.RouteValues["controller"], "Home"); Assert.AreEqual(result.RouteValues["action"], "Index"); //Assert that the controller forwarded the username and password to IUserService correctly userServiceMock.Verify(a => a.Login(credentials), Times.Once()); //Assert that the controller set the session state correctly accessTokenProviderMock.Verify(a => a.SetUserAccessToken(accessToken)); }
public async Task Handle_GetUserAccessTokenCommand_OpenIdOfUserAccessTokenNotExisted() { //Arrange var expected = new UserAccessToken(); var db = new List <UserAccessToken>(); communicator.Setup(c => c.GetUserAccessTokenAsync("123")) .Returns(Task.FromResult(expected)); context.SetupGet(c => c.UserAccessTokens).Returns(Mocking.GetMockDbSet(db)); context.Setup(c => c.SaveAsync()).Returns(Task.CompletedTask); var command = new GetUserAccessTokenCommand(code: "123"); var handler = createHandler(); //Act var result = await handler.Handle(command); //Assert communicator.VerifyAll(); context.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, result)); Assert.Same(expected, db.FirstOrDefault()); }
public void SetUserAccessToken(UserAccessToken accessToken) { var hash = GenerateSaltedHash(accessToken.Email + ":" + accessToken.Ticket, GenerateSalt()); var hashString = Convert.ToBase64String(hash); if (!_memcachedClient.Store(StoreMode.Set, hashString, accessToken)) { _logger.Error("Failed to set access token for: " + accessToken.Email); throw new UserTokenPersistenceFailedExpcetion(); } CurrentAccessToken = accessToken; var cookie = new HttpCookie(_cookieName, hashString) { Secure = _useSecureCookie, /* Ensures that this cookie is only used on SSL connections - this prevents Man-in-the-middle attacks */ HttpOnly = true, /* Ensures that the cookie cannot be read from JavaScript - this prevents XSS attacks */ }; HttpContext.Current.Response.Cookies.Add(cookie); _logger.Info("Set access token for: " + accessToken.Email); }
public async Task <UserAccessToken> RefreshSpotifyAccessToken(string userId) { var refreshToken = await _data.GetOrDefault(UserAccessToken.CanonicalId(userId), userId); var now = DateTimeOffset.UtcNow; var newToken = await _userAccounts.RefreshUserAccessToken(refreshToken.RefreshToken); refreshToken.ResetAccessToken(newToken, now); // Save User Access Tokens to storage await _data.Replace(refreshToken, refreshToken.ETag); // Store AccessToken (only) in Cache. Set Cache item expiry for when the token is due to expire. // DO NOT cache Refresh Tokens var userAccessToken = new UserAccessToken(refreshToken); await _cache.Set( Key(userId), userAccessToken, userAccessToken.Expires.Subtract(DateTimeOffset.UtcNow)); return(userAccessToken); }
public static wxPayReturnValue OAuth2_Access_Token(string Code) { StringBuilder sbCode = new StringBuilder(OAUTH2_ACCESS_TOKEN); sbCode.Append("?appid=" + APPID); sbCode.Append("&secret=" + APPSECRET); sbCode.Append("&code=" + Code); sbCode.Append("&grant_type=authorization_code"); wxPayReturnValue retValue = StreamReaderUtils.StreamReader(sbCode.ToString(), Encoding.UTF8); if (retValue.HasError) { return(retValue); } try { UserAccessToken uat = JSONHelper.JSONToObject <UserAccessToken>(retValue.Message); retValue.PutValue("Weixin_OpenID", uat.openid); retValue.PutValue("Weixin_Token", uat.access_token); LogService.Write("openID" + uat.openid + "---" + "Weixin_token" + uat.access_token); //retValue.PutValue("Weixin_ExpiresIn", intWeixin_ExpiresIn); //retValue.PutValue("Weixin_ExpiresDate", DateTime.Now.AddSeconds(intWeixin_ExpiresIn)); //retValue.PutValue("refresh_token", StringUtils.GetJsonValue(retValue.Message, "refresh_token").ToString()); //retValue.PutValue("scope", StringUtils.GetJsonValue(retValue.Message, "scope").ToString()); } catch { retValue.HasError = true; // retValue.Message = retValue.Message; retValue.ErrorCode = ""; } return(retValue); }
public UserListPageDataTransfer(UserListMode mode, UserAccessToken userAccessToken) { this.mode = mode; this.userAccessToken = userAccessToken; }
public IEnumerable <Movie> Get(UserAccessToken user) { return(_repo.GetMovies(user)); }
public void DismissHugs(UserAccessToken userAccessToken) { _hugRepository.DismissHugs(userAccessToken.Ticket); }
// POST api/login public Object Post(LoginApiModel obj) { string msg; try { if (string.IsNullOrEmpty(obj.UserIdOrMobile)) { msg = XiaoluResources.MSG_LOGIN_FAIL + string.Format(XiaoluResources.STR_FAIL_RESAON, XiaoluResources.MSG_MOBILE_OR_USERID_IS_NULL); return(new { IsSuccess = false, Message = msg }); } if (string.IsNullOrEmpty(obj.Password) || obj.Password.Trim().Length < 6) { msg = XiaoluResources.MSG_LOGIN_FAIL + string.Format(XiaoluResources.STR_FAIL_RESAON, XiaoluResources.MSG_PASSWORD_IS_NOT_VALID); return(new { IsSuccess = false, Message = msg }); } User userInDb = BusinessService.GetUserByName(obj.UserIdOrMobile); User userInDb2 = BusinessService.GetUserByMobile(obj.UserIdOrMobile); if (userInDb == null && userInDb2 == null) { msg = XiaoluResources.MSG_LOGIN_FAIL + string.Format(XiaoluResources.STR_FAIL_RESAON, XiaoluResources.MSG_CANNOT_FIND_USER); return(new { IsSuccess = false, Message = msg }); } User findedUser = (userInDb == null) ? userInDb2 : userInDb; string md5Pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(obj.Password, "MD5"); //验证密码 if (!string.Equals(md5Pwd, findedUser.Password)) { findedUser.LastFailLoginTime = DateTime.Now; if (findedUser.ErrLoginTimes == null) { findedUser.ErrLoginTimes = 0; } findedUser.ErrLoginTimes++; BusinessService.UpdateUser(findedUser); msg = XiaoluResources.MSG_LOGIN_FAIL + string.Format(XiaoluResources.STR_FAIL_RESAON, XiaoluResources.MSG_PASSWORD_IS_IN_CORRECT); return(new { IsSuccess = false, Message = msg }); } //密码验证通过,则登录成功 //写历史记录 msg = XiaoluResources.MSG_LOGIN_SUCCESS; History his = new History() { UserId = findedUser.Name, CreationDate = DateTime.Now, Content = msg }; BusinessService.CreateHistory(his); string accessToken4User; UserAccessToken uatInDb = BusinessService.GetAccessTokenByUserId(findedUser.Name); if (uatInDb != null && uatInDb.ExpireDate > DateTime.Now) { accessToken4User = uatInDb.AccessToken; return(new { IsSuccess = true, Message = msg, AccessToken = accessToken4User }); } if (uatInDb != null) { BusinessService.DeleteUserAccessToken(uatInDb); } accessToken4User = Guid.NewGuid().ToString(); UserAccessToken uat = new UserAccessToken() { UserId = findedUser.Name, AccessToken = accessToken4User, WeixinId = findedUser.WeixinId, ExpireDate = DateTime.Now.AddSeconds(ACCESS_TOKEN_DURATION_IN_SECONDS) }; BusinessService.CreateUserAccessToken(uat); AccessTokenUserPool.AddAccessTokenUserId(accessToken4User, findedUser.Name); return(new { IsSuccess = true, Message = msg, AccessToken = accessToken4User }); } catch (Exception e) { msg = XiaoluResources.MSG_LOGIN_FAIL + string.Format(XiaoluResources.STR_FAIL_RESAON, ExceptionHelper.GetInnerExceptionInfo(e)); return(new { IsSuccess = false, Message = msg }); } }
public UserProfile GetUserProfile(UserAccessToken userAccessToken) { var userProfile = _userProfileRepository.GetUserProfile(userAccessToken.Ticket); return(Mapper.Map <UserProfile>(userProfile)); }
public void SetUserAccessToken(UserAccessToken accessToken) { _httpContext.Session[_sessionKeyName] = accessToken; }
public string GetAccessToken(string wxappid, bool refresh = false) { string result = ""; int maxtrytimes = 3; int currtry = 0; string appsecret = WXApiInfo.appsecret; DateTime stateupdatetime; int maxfreshingtime = 10;//最大刷新时间(秒),超过则不等待 OracleDBO mydbo = new OracleDBO(); mydbo.AutoClose = false; try { string token; DateTime gettime; int expires_in; string status; DataRow dr; while (currtry < maxtrytimes) { dr = mydbo.GetDataRow("select * from sys_p_wxappaccesstoken t where t.wxappid='" + wxappid + "'"); if (dr != null) { token = dr["access_token"].ToString(); gettime = Convert.ToDateTime(dr["gettime"]); expires_in = Convert.ToInt32(dr["expires_in"]); status = dr["state"].ToString(); stateupdatetime = Convert.ToDateTime(dr["stateupdatetime"]); if (status == "Normal") { //是否已超时 if ((DateTime.Now - gettime).TotalSeconds < (expires_in - 5) && !refresh) { //未超时并且不要求更新 result = token; break; } else { #region 更新access_token流程 mydbo.BeginTransaction(); int effnum = mydbo.ExecuteNonQuery("update sys_p_wxappaccesstoken set state='Refreshing',stateupdatetime=sysdate where WXAppID='" + wxappid + "' and state='Normal' and gettime=to_date('" + gettime.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-mm-dd hh24:mi:ss')"); mydbo.Commit(); //如果影响数大于零,说明更新状态成功,则即是取得了更新权。 if (effnum > 0) { UserAccessToken tokeninfo = GetNewAccessToken(wxappid, appsecret); if (tokeninfo.errcode == 0) { result = tokeninfo.access_token; mydbo.BeginTransaction(); mydbo.ExecuteNonQuery("update sys_p_wxappaccesstoken set access_token='" + tokeninfo.access_token + "',expires_in=" + tokeninfo.expires_in.ToString() + ",gettime=to_date('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-mm-dd hh24:mi:ss'),state='Normal',stateupdatetime=sysdate where WXAppID='" + wxappid + "'"); mydbo.Commit(); break; } else { //如果未成功,先将状态改回来 mydbo.BeginTransaction(); mydbo.ExecuteNonQuery("update sys_p_wxappaccesstoken t set t.state='Normal',t.stateupdatetime=sysdate where t.access_token='" + token + "' and t.gettime=to_date('" + gettime.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-mm-dd hh24:mi:ss') and t.wxappid='" + wxappid + "'"); mydbo.Commit(); } } else { //如果不是Normal状态,可能是其他请求正在刷新中,等半秒再取 if ((DateTime.Now - stateupdatetime).TotalSeconds > maxfreshingtime) { mydbo.BeginTransaction(); mydbo.ExecuteNonQuery("update sys_p_wxappaccesstoken t set t.state='Normal',t.stateupdatetime=sysdate where t.access_token='" + token + "' and t.gettime=to_date('" + gettime.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-mm-dd hh24:mi:ss') and t.wxappid='" + wxappid + "'"); mydbo.Commit(); } System.Threading.Thread.Sleep(500); } #endregion } } else { //如果不是Normal状态,可能是其他请求正在刷新中,等半秒再取 if ((DateTime.Now - stateupdatetime).TotalSeconds > maxfreshingtime) { mydbo.BeginTransaction(); mydbo.ExecuteNonQuery("update sys_p_wxappaccesstoken t set t.state='Normal',t.stateupdatetime=sysdate where t.access_token='" + token + "' and t.gettime=to_date('" + gettime.ToString("yyyy-MM-dd HH:mm:ss") + "','yyyy-mm-dd hh24:mi:ss') and t.wxappid='" + wxappid + "'"); mydbo.Commit(); } System.Threading.Thread.Sleep(500); } } else { UserAccessToken tokeninfo = GetNewAccessToken(wxappid, appsecret); if (tokeninfo.errcode == 0) { result = tokeninfo.access_token; mydbo.BeginTransaction(); mydbo.ExecuteNonQuery("insert into sys_p_wxappaccesstoken(WXAppID,access_token,expires_in,state,gettime,stateupdatetime) values('" + wxappid + "','" + tokeninfo.access_token + "'," + tokeninfo.expires_in.ToString() + ",'Normal',to_date('" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "','yyyy-mm-dd hh24:mi:ss'),to_date('" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "','yyyy-mm-dd hh24:mi:ss'))"); mydbo.Commit(); break; } } currtry++; } } catch (Exception ex) { LogWriter.WriteLog(ex); } mydbo.Close(); return(result); }
public void DeleteUser(UserAccessToken accessToken) { _userRepository.DeleteUser(accessToken.Ticket); _logger.Info("Deleted user account: " + accessToken.Email); }
public void AuthorizeWithUserAccessToken(UserAccessToken accessToken) { this.AccessToken = accessToken; }