public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var identity = new ClaimsIdentity(context.Options.AuthenticationType); var validUser = _user.IsUserValid(context.UserName, context.Password); BLO.LoginAudit loginAudit = new BLO.LoginAudit(); //loginAudit.IPAddress =GetClientIP(); loginAudit.UserName = context.UserName; loginAudit.LoginDate = DateTime.Now; loginAudit.LoginStatus = "Failed"; if (validUser.IsTransactionDone) { if (validUser.IsValidUser) { string[] roles = _user.GetUserRoles(context.UserName); foreach (string role in roles) { identity.AddClaim(new Claim(ClaimTypes.Role, role)); } identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName)); //if (roles[0] != "SuperAdmin") //{ // var userDetails = _user.FetchUserInformation(context.UserName); // identity.AddClaim(new Claim(ClaimTypes.Name, userDetails.UserID)); // identity.AddClaim(new Claim("userName", userDetails.UserName)); // identity.AddClaim(new Claim("userID", userDetails.UserID)); // identity.AddClaim(new Claim("agentCode", userDetails.AgentCode)); // identity.AddClaim(new Claim("agentBranch", userDetails.AgentBranch)); // identity.AddClaim(new Claim("agency", userDetails.Agency)); // identity.AddClaim(new Claim("products", userDetails.Products)); //} //else //{ // identity.AddClaim(new Claim(ClaimTypes.Name, "SuperAdmin")); //} var userDetails = _user.FetchUserInformation(context.UserName); identity.AddClaim(new Claim(ClaimTypes.Name, userDetails.UserID)); identity.AddClaim(new Claim("userName", userDetails.UserName)); identity.AddClaim(new Claim("userID", userDetails.UserID)); identity.AddClaim(new Claim("agentCode", userDetails.AgentCode)); identity.AddClaim(new Claim("agentBranch", userDetails.AgentBranch)); identity.AddClaim(new Claim("agency", userDetails.Agency)); identity.AddClaim(new Claim("products", userDetails.Products)); identity.AddClaim(new Claim("id", userDetails.ID.ToString())); identity.AddClaim(new Claim("isShowPayments", userDetails.IsShowPayments.ToString())); //identity.AddClaim(new Claim("agentLogo", Convert.ToBase64String(userDetails.AgentLogo))); context.Validated(identity); loginAudit.LoginStatus = "Success"; //new Task(() => { TrackLoginAudit(loginAudit); }).Start(); } else { context.SetError("invalid_grant", "Provided username and password is incorrect"); //new Task(() => { TrackLoginAudit(loginAudit); }).Start(); return(base.GrantResourceOwnerCredentials(context)); } } else { context.SetError("Transaction_error", "Transaction failed. Please try again"); //new Task(() => { TrackLoginAudit(loginAudit); }).Start(); return(base.GrantResourceOwnerCredentials(context)); } return(base.GrantResourceOwnerCredentials(context)); }
private void TrackLoginAudit(BLO.LoginAudit audit) { _user.TrackLogin(audit); }