nove verzije
This commit is contained in:
100
InfosysPublisher/WinLogin.xaml.cs
Normal file
100
InfosysPublisher/WinLogin.xaml.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user