public ClaimsIdentity GenerateUserIdentity(Admin userLogin, string authenticationType) { var userIdentity = new ClaimsIdentity(authenticationType); userIdentity.AddClaim(new Claim(ClaimTypes.Name, userLogin.LoginName)); userIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userLogin.Id.ToString())); // Add custom user claims here return userIdentity; }
public ApiResponse<IdentityToken> UserToken(Admin admin) { var user = Context.Admins.FirstOrDefault(x => x.LoginName == admin.LoginName && x.Password == admin.Password && x.IsActive); if (user == null) { throw new UnauthorizedAccessException(""); } ClaimsIdentity oAuthIdentity = new ApplicationIdentityUser().GenerateUserIdentity(user, "Jwt"); var ticket = new AuthenticationTicket(oAuthIdentity, new AuthenticationProperties()); var currentUtc = new SystemClock().UtcNow; ticket.Properties.IssuedUtc = currentUtc; ticket.Properties.ExpiresUtc = currentUtc.AddDays(1); var token = AuthConfig.OAuthServerOptions.AccessTokenFormat.Protect(ticket); return new ApiResponse<IdentityToken>(new IdentityToken() { AccessToken = token, ExpiresIn = (long)AuthConfig.OAuthServerOptions.AuthorizationCodeExpireTimeSpan.TotalSeconds, TokenType = AuthConfig.OAuthServerOptions.AuthenticationType}); }
public void UserToken() { var admin = new Admin { LoginName = "Admin1", Password = "******", IsActive = true }; Db.Setup(x => x.Logins).Returns(new List<Admin>() { admin }); InitializeServer(); //api call string contentBody = string.Format("grant_type={0}&username={1}&password={2}", "password", admin.LoginName, admin.Password); //important IdentityToken responseTmplObj; HttpRequestMessage request = CreateRequest("token/user", HttpMethod.Post, contentBody); using (HttpResponseMessage response = HttpClient.SendAsync(request).Result) { responseTmplObj = JsonConvert.DeserializeObject<IdentityToken>( response.Content.ReadAsStringAsync().Result); } //returned Assert.IsNotNullOrEmpty(responseTmplObj.AccessToken); }
protected string GetToken() { //api call var admin = new Admin { LoginName = "Admin1", Password = "******" }; ApiResponseTmpl<IdentityToken> responseTmplObj; HttpRequestMessage request = CreateRequest("token/user", HttpMethod.Post, JsonConvert.SerializeObject(admin)); using (HttpResponseMessage response = HttpClient.SendAsync(request).Result) { responseTmplObj = JsonConvert.DeserializeObject<ApiResponseTmpl<IdentityToken>>( response.Content.ReadAsStringAsync().Result); } return responseTmplObj.Data.AccessToken; }
public void InitializeServer() { var admin = new Admin { LoginName = "Admin1", Password = "******", IsActive = true}; Db.Setup(x => x.Admins).Returns(new List<Admin>() {admin}); ApiStartup.Ioc.UmsDbProvider = context => Db.Object; Server = WebApp.Start<ApiStartup>(BaseUrl); }