public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { //var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>(); //ApplicationUser user = await userManager.FindAsync(context.UserName, context.Password); //if (user == null) //{ // context.SetError("invalid_grant", "The user name or password is incorrect."); // return; //} //ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, // OAuthDefaults.AuthenticationType); //ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager, // CookieAuthenticationDefaults.AuthenticationType); //AuthenticationProperties properties = CreateProperties(user.UserName); //AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); //context.Validated(ticket); //context.Request.Context.Authentication.SignIn(cookiesIdentity); var form = await context.Request.ReadFormAsync(); string clientId = form["clientid"]; BAL.TenentService ts = new BAL.TenentService(); TenentLogin tslogin = new TenentLogin { ClientId = clientId, UserName = context.UserName, Password = context.Password }; BAL.ResultMsgLogin returnmsg = ts.LoginUser(tslogin); if (!returnmsg.IsOk) { context.SetError("invalid_grant", returnmsg.DisplayMsg); return; } ClaimsIdentity oAuthIdentity = new ClaimsIdentity(context.Options.AuthenticationType); ClaimsIdentity cookiesIdentity = new ClaimsIdentity(context.Options.AuthenticationType); AuthenticationProperties properties = CreateProperties(context.UserName, returnmsg.TenentId); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); context.Validated(ticket); context.Request.Context.Authentication.SignIn(cookiesIdentity); }
public ResultMsgLogin LoginUser(TenentLogin login) { ResultMsgLogin result = new ResultMsgLogin(); try { var tenent = context.Tenents.FirstOrDefault(f => f.ClientId == login.ClientId); if (tenent == null) { result.IsOk = false; result.DisplayMsg = "Client id is wrong!"; return(result); } result.TenentId = tenent.Id; var user = context.Users.FirstOrDefault(f => f.UserName == login.UserName && f.Password == login.Password && f.TenentId == tenent.Id); if (user == null) { result.IsOk = false; result.DisplayMsg = "Userid or password not match!"; return(result); } else { result.IsOk = true; } } catch (Exception ex) { result.Exception = ex.Message; if (ex.InnerException != null) { result.InnerException = ex.InnerException.Message; if (ex.InnerException.InnerException != null) { result.InnInnerException = ex.InnerException.InnerException.Message; } } result.StackTrace = ex.StackTrace; result.IsOk = false; } return(result); }