public IActionResult Singin(Singin singin) { using (var client = new SqlConnection(MyDatabase)) { using (var command = new SqlCommand()) { command.Connection = client; command.CommandText = "SELECT * FROM Student where Student.IndexNumber=@ind "; command.Parameters.AddWithValue("ind", singin.Login); command.Parameters.AddWithValue("pass", singin.Haslo); client.Open(); var qr = command.ExecuteReader(); while (qr.Read()) { var pass = qr["Password"].ToString(); var salt = qr["Salt"].ToString(); if (HashedPass(singin.Haslo, salt) == pass) { qr.Close(); var refreshToken = Guid.NewGuid(); command.CommandText = "UPDATE Student SET Refreshtkn =@tkn where Student.IndexNumber=@ind "; command.Parameters.AddWithValue("tkn", refreshToken); command.ExecuteNonQuery(); nameid++; var claims = new[] { new Claim(ClaimTypes.NameIdentifier, "" + nameid), new Claim(ClaimTypes.Name, singin.Login), new Claim(ClaimTypes.Role, ""), new Claim(ClaimTypes.Role, "student") }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SecretKey"])); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken ( issuer: "Gakko", audience: "Students", claims: claims, expires: DateTime.Now.AddMinutes(10), signingCredentials: creds ); Console.WriteLine(refreshToken); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token), refreshToken })); } } } } return(Unauthorized()); }
public static void UploadDataToYlmf(DataTable data) { if (data.Rows.Count > 0) { Func <int, int> func = v => { return(new int[] { 2, 4 }.Contains(v) ? 1 : 0); }; foreach (DataRow dr in data.Rows) { try { var isLeaving = false; if (dr["flow_stuFlowBackState"] != null) { if (dr["flow_stuFlowBackState"].ToString().Trim() != "-2") { isLeaving = true; } } var cardNo = string.Empty; if (!isLeaving) { cardNo = dr["flow_stuEnterCardNumber"] == null ? string.Empty : dr["flow_stuEnterCardNumber"].ToString(); } else { cardNo = dr["flow_stuBackCardNumber"] == null ? string.Empty : dr["flow_stuBackCardNumber"].ToString(); } var singinTime = string.Empty; if (!isLeaving) { singinTime = dr["flow_stuFlowEnterDate"] == null?DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : Convert.ToDateTime(dr["flow_stuFlowEnterDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); } else { singinTime = dr["flow_stuFlowEnterDate"] == null?DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : Convert.ToDateTime(dr["flow_stuFlowBackDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); } var status = "健康"; if (!isLeaving) { status = dr["state_flowStateName"] == null ? "健康" : dr["state_flowStateName"].ToString(); } else { status = "再见"; } Singin.SingIn(new SinginBean { schoolNum = dr["gardenID"].ToString(), serialNumber = dr["idx"].ToString(), idNum = cardNo, singinTime = singinTime, status = status, studentId = dr["info_stuNumber"].ToString(), type = !isLeaving ? 2 : 1, //和文档倒一下 fromtype = func(dr["flow_stuModify"] == null ? 0 : Convert.ToInt32(dr["flow_stuModify"])) }); } catch (Exception ex) { SystemFramework.Util.WriteLog(ex.ToString(), SystemFramework.Util.EXCEPTION_LOG_TITLE); } } } }