nove verzije

This commit is contained in:
David Štaleker
2024-08-02 11:00:59 +02:00
parent edab522e0e
commit ca229fbd89
8 changed files with 491 additions and 157 deletions

View File

@@ -0,0 +1,100 @@
using Renci.SshNet;
using ResevalnaScanner.Classes;
using System;
using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;
using System.Windows;
using InfosysPublisher.Classes;
using Microsoft.Data.SqlClient;
namespace InfosysPublisher
{
/// <summary>
/// Interaction logic for WinLogin.xaml
/// </summary>
public partial class WinLogin : Window
{
public WinLogin()
{
InitializeComponent();
}
private async void Login_OnClick(object sender, RoutedEventArgs e)
{
var succeeded = false;
var isLockedOut = false;
var username = tbUsername.Text;
var password = tbPassword.Password;
User user = null;
await Task.Run(() =>
{
using var sqlConnection = new SqlConnection(App.SqlConnectionString);
sqlConnection.Open();
var sqlCommandString = @"
SELECT ID_Uporabnik,
UporabniskoIme,
Ime,
Priimek,
GesloBytes,
SaltBytes,
Aktiven
FROM Uporabnik
WHERE UporabniskoIme = @uporabniskoIme
AND GesloBytes IS NOT NULL
AND SaltBytes IS NOT NULL"
;
using var sqlCommand = new SqlCommand(sqlCommandString, sqlConnection);
sqlCommand.Parameters.AddWithValue("uporabniskoIme", username);
using var sqlDataReader = sqlCommand.ExecuteReader();
if (sqlDataReader.Read())
{
if (sqlDataReader.GetString("UporabniskoIme") == username
&& Encryption.CompareByteArrays(Encryption.CreatePasswordHash(password, (byte[])sqlDataReader.GetValue("SaltBytes")).Hash, (byte[])sqlDataReader.GetValue("GesloBytes")))
{
if (sqlDataReader.GetBoolean("Aktiven"))
{
user = new User
{
Id = sqlDataReader.GetInt32(sqlDataReader.GetOrdinal("ID_Uporabnik")),
Name = sqlDataReader.GetString(sqlDataReader.GetOrdinal("Ime")),
Surname = sqlDataReader.GetString(sqlDataReader.GetOrdinal("Priimek")),
Username = sqlDataReader.GetString(sqlDataReader.GetOrdinal("UporabniskoIme")),
};
succeeded = true;
}
else
{
isLockedOut = true;
}
}
}
else
{
//zato da ne takoj konca
Encryption.CompareByteArrays(Encryption.CreatePasswordHash(password).Hash, new byte[4] { 0, 1, 0, 1 });
}
});
tbPassword.Password = "";
if (!succeeded)
{
MessageBox.Show("Wrong login data!", "Login", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
App.User = user;
this.Hide();
var win = new WinMain();
win.ShowDialog();
this.Show();
this.Close();
}
}
}