public async Task <AccessTokenViewModel> GetAccessToken(SysUser user) { if (user != null) { //if (user.LockoutEndDateUtc > DateTimeLocal.Now) //{ // ModelState.AddModelError("", "用户已锁定"); //} //else { ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(UserManager, OAuthDefaults.AuthenticationType); ClaimsIdentity cookieIdentity = await user.GenerateUserIdentityAsync(UserManager, CookieAuthenticationDefaults.AuthenticationType); AuthenticationProperties properties = ApplicationOAuthProvider.CreateProperties(user.UserName); Authentication.SignIn(properties, oAuthIdentity, cookieIdentity); //生成ticket AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); var currentUtc = DateTime.Now; ticket.Properties.IssuedUtc = currentUtc; ticket.Properties.ExpiresUtc = currentUtc.Add(Startup.OAuthOptions.AccessTokenExpireTimeSpan); var token = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket); var expirers = (Int32)Startup.OAuthOptions.AccessTokenExpireTimeSpan.TotalSeconds; var roleid = user.Roles.FirstOrDefault().RoleId; var rolename = _isysRoleService.GetById(roleid).Name; return(new AccessTokenViewModel(token, "bearer", user.UserName, rolename, expirers - 1)); //} } ModelState.AddModelError("", "无效的登录尝试"); return(null); }