Помогите пожалуйста, не могу понять принцип входа в данном окне, как мне залогиниться ?, Связь с сервером и базой данных установлен, откуда брать или задать начальный логин и пароль, без логина и пароля я не зайду в основной функционал программы, в нем я уже смогу создавать нового пользователя.
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Security;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Dekanat.Authorization;
using Dekanat.Serialization;
namespace Dekanat
{
/// <summary>
/// Логика взаимодействия для AuthorizationWindow.xaml
/// </summary>
public partial class AuthorizationWindow : Window
{
private readonly string _userFilePath
= string.Format("{0}\\user.txt", Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory));
private readonly SqlConnectionStringBuilder _connectionStringBuilder = new SqlConnectionStringBuilder()
{
DataSource = @"DESKTOP-VDBN6O7\SQLEXPRESS",
InitialCatalog = "dbStudentsFinal",
IntegratedSecurity = true
};
public AuthorizationWindow()
{
InitializeComponent();
TestSqlServerConnectionAsync(_connectionStringBuilder.ConnectionString);
AutoAuthorization();
CloseButton.Click += CloseButton_Click;
EnterButton.Click += EnterButton_Click;
Login.GotFocus += HideErrorBlock;
Password.GotFocus += HideErrorBlock;
}
private void HideErrorBlock(object sender, EventArgs e)
{
ErrorBlock.Visibility = Visibility.Hidden;
}
private void CloseButton_Click(object sender, RoutedEventArgs e)
{
Close();
}
private void EnterButton_Click(object sender, RoutedEventArgs e)
{
_connectionStringBuilder.IntegratedSecurity = false;
try
{
MainWindow mainWindow;
var password = Password.SecurePassword;
password.MakeReadOnly();
var credential = new SqlCredential(Login.Text, password);
using (var connection = new SqlConnection(_connectionStringBuilder.ConnectionString, credential))
{
connection.Open();
mainWindow = new MainWindow(connection.ConnectionString, credential);
}
if (RememberMeCheckBox.IsChecked.Value)
{
var userInformation = new UserInformation
{
Login = Base64Converter.ToBase64(Login.Text),
Password = Base64Converter.ToBase64(Password.Password)
};
DataSerializer.Serialize(_userFilePath, userInformation);
}
else
{
File.Delete(_userFilePath);
}
mainWindow.Show();
Close();
}
catch(SqlException ex)
{
if (ex.Number == 18456) //Login failed for user
{
Login.Text = "";
Password.Password = "";
ErrorMessage.Text = "Неправильний логін або пароль!";
ErrorBlock.Visibility = Visibility.Visible;
}
else
{
throw;
}
}
}
private void AutoAuthorization()
{
if (File.Exists(_userFilePath))
{
var userInformation = (UserInformation) DataSerializer.Deserialize(_userFilePath);
Login.Text = Base64Converter.FromBase64(userInformation.Login);
Password.Password = Base64Converter.FromBase64(userInformation.Password);
RememberMeCheckBox.IsChecked = true;
}
}
private bool GetSqlServerConnectionStatus(string connectionString)
{
try
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
}
return true;
}
catch (SqlException)
{
return false;
}
}
private async void TestSqlServerConnectionAsync(string connectionString)
{
var sqlServerConnectionStatus = await Task.Run(() => GetSqlServerConnectionStatus(connectionString));
if (sqlServerConnectionStatus)
{
ConnectionStatus.Fill = Brushes.Lime;
EnterButton.IsEnabled = true;
}
else
{
ConnectionStatus.Fill = Brushes.Red;
}
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Такая проблема есть тестовый проект на yii2И нужно из 2 xml файлов собрать массив и вывести в gridView, сам массив собрать не особо сложно проблема...