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);
        }
示例#2
0
        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);
        }