Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Авторизация в sql / 25 сообщений из 31, страница 1 из 2
01.05.2018, 17:20
    #39638749
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
В приложении две формы. При запуске приложения запускается первая форма, из нее вторая с окном авторизации. Но если закрыть вторую форму, появляется первая, то есть можно и не проходить авторизацию. Как сделать, чтобы при закрытии окна авторизации закрывалось все приложение?
...
Рейтинг: 0 / 0
01.05.2018, 17:36
    #39638753
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11,

открывайте сначала форму логина, или есть причины делать иначе?

P.S.: и не авторизация, а аутентификация
...
Рейтинг: 0 / 0
01.05.2018, 17:37
    #39638755
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
      
        private void ReadText() // а вызлв этого метода происходит инициализаторе формы
        {

            try
            {
                StreamReader sr = File.OpenText(@"C:\conf.txt");
                string[] rows = sr.ReadToEnd().Split('\n');
                textBox1.Text = rows[0].Trim();
                textBox2.Text = rows[1].Trim();
                textBox3.Text = rows[2].Trim();
                sr.Close();
               
                using (Formaut f = new Formaut())
                {
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                       
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
            }



В данный момент при открытии формы, запускается вторая форма и просит авторизоваться, но если ее просто закрыть на крестик, то запустится главная форма
...
Рейтинг: 0 / 0
01.05.2018, 17:38
    #39638756
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11,
сделай проще логику:
- либо не позволяй открыться главной форме (первая) и приложению вообще без коннекта к серверу
- либо делай соединение без всяких форм. В меню - Соединится\Отсоединится.
...
Рейтинг: 0 / 0
01.05.2018, 17:40
    #39638757
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
skyANA,

Если открывать форму 2 в начале, не получится ли что при закрытии формы 1 будет открываться форма 2?
...
Рейтинг: 0 / 0
01.05.2018, 17:41
    #39638759
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
Petro123,

Дело в том, что сначала приложение просит ввести реквизиты сервера, если их нет.
...
Рейтинг: 0 / 0
01.05.2018, 17:43
    #39638760
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11OlegEgorov11,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
      
        private void ReadText() // а вызлв этого метода происходит инициализаторе формы
        {

            try
            {
                StreamReader sr = File.OpenText(@"C:\conf.txt");
                string[] rows = sr.ReadToEnd().Split('\n');
                textBox1.Text = rows[0].Trim();
                textBox2.Text = rows[1].Trim();
                textBox3.Text = rows[2].Trim();
                sr.Close();
               
                using (Formaut f = new Formaut())
                {
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                       
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
            }


В данный момент при открытии формы, запускается вторая форма и просит авторизоваться, но если ее просто закрыть на крестик, то запустится главная форма
Ни фига не понял. Но вот к примеру:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    // Отображение окна ввода логина и пароля  если в файле не указан пароль            
    string connectionString = ConfigurationManager.ConnectionStrings["local"].ConnectionString;
    string pwd = Regex.Match(connectionString, @"Password\s*=\s*(?<PWD>([^;]+));*", RegexOptions.IgnoreCase ).Groups["PWD"].Value;

    if (String.IsNullOrEmpty(pwd))
    {
        using (var form = new LoginForm(connectionString))
        {
            if (DialogResult.Cancel == form.ShowDialog())
            {
                return;
            }
        }
    }

    Application.Run(new MainForm());
}
...
Рейтинг: 0 / 0
01.05.2018, 17:45
    #39638762
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11Если открывать форму 2 в начале, не получится ли что при закрытии формы 1 будет открываться форма 2?Не получится, смотрите мой пример.

OlegEgorov11Дело в том, что сначала приложение просит ввести реквизиты сервера, если их нет.В моём примере как раз требуется ввести логин и пароль, если они не указаны в конфиге.
...
Рейтинг: 0 / 0
01.05.2018, 17:51
    #39638764
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11Petro123,

Дело в том, что сначала приложение просит ввести реквизиты сервера, если их нет.
не понял.
В главной форме:
Код: c#
1.
2.
Initialze();
if (!IsConnect()) выход_и_закрытие_всего_на_свете()


всё
...
Рейтинг: 0 / 0
01.05.2018, 17:52
    #39638766
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
skyANA,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
   string connectionString = ConfigurationManager.ConnectionStrings["local"].ConnectionString;
    string pwd = Regex.Match(connectionString, @"Password\s*=\s*(?<PWD>([^;]+));*", RegexOptions.IgnoreCase ).Groups["PWD"].Value;

    if (String.IsNullOrEmpty(pwd))
    {
        using (var form = new LoginForm(connectionString))
        {
            if (DialogResult.Cancel == form.ShowDialog())
            {
                return;
            }
        }
    }

    Application.Run(new MainForm());
}




можно ли на примере это сделать, чтобы не запускалась форма 1 пока в форме два не будет " if (Form2.ShowDialog() == DialogResult.OK)" диалогового окна с кнопкой ок?
...
Рейтинг: 0 / 0
01.05.2018, 17:55
    #39638768
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
skyANA,

у меня в форме настройки настраивается сначала строка соединения(имя сервера, пароль, логин) а в форме аутентификации, уже проверка пароля в бд.
...
Рейтинг: 0 / 0
01.05.2018, 17:56
    #39638769
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11skyANA,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
   string connectionString = ConfigurationManager.ConnectionStrings["local"].ConnectionString;
    string pwd = Regex.Match(connectionString, @"Password\s*=\s*(?<PWD>([^;]+));*", RegexOptions.IgnoreCase ).Groups["PWD"].Value;

    if (String.IsNullOrEmpty(pwd))
    {
        using (var form = new LoginForm(connectionString))
        {
            if (DialogResult.Cancel == form.ShowDialog())
            {
                return;
            }
        }
    }

    Application.Run(new MainForm());
}





можно ли на примере это сделать, чтобы не запускалась форма 1 пока в форме два не будет " if (Form2.ShowDialog() == DialogResult.OK)" диалогового окна с кнопкой ок?
Если нет реквизитов сервера, то откроется диалоговое окно.
И в этом случае форма один не запустится, пока в форме два не будет " if (Form2.ShowDialog() == DialogResult.OK)".

Вам разве не это надо?
...
Рейтинг: 0 / 0
01.05.2018, 17:57
    #39638770
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11у меня в форме настройки настраивается сначала строка соединения(имя сервера, пароль, логин) а в форме аутентификации, уже проверка пароля в бд.
Вы будете по одному предложению подробности выдавать? Может за одно сообщение справитесь?
...
Рейтинг: 0 / 0
01.05.2018, 17:59
    #39638771
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
Petro123, При запуске приложения на новом месте, форма 1 пытается считать конфиг, но его нет, тогда появляется форма с настройкой конфига(имя сервера, логин, пароль) после чего появляется форма аутентификации - логин пароль пользователя. Если конфиг есть, то просто запускается форма логина-пароля. Форма ввода логина пароля и логина запускается из первой формы(главной), главная форма скрывается. Но если закрыть форму ввода логина пароля на крестик, то просто появляется главная форма.
...
Рейтинг: 0 / 0
01.05.2018, 18:00
    #39638772
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
skyANA,
При запуске приложения на новом месте, форма 1 пытается считать конфиг, но его нет, тогда появляется форма с настройкой конфига(имя сервера, логин, пароль) после чего появляется форма аутентификации - логин-пароль пользователя. Если конфиг есть, то просто запускается форма логина-пароля. Форма ввода логина-пароля запускается из первой формы(главной), главная форма скрывается. Но если закрыть форму ввода логина пароля на крестик, то просто появляется главная форма.
...
Рейтинг: 0 / 0
01.05.2018, 18:01
    #39638773
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
skyANA, как бы нужно просто сделать, чтобы при нажатии на крестик формы логин-пароль закрывалось все приложение. А не просто эта форма
...
Рейтинг: 0 / 0
01.05.2018, 18:05
    #39638774
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11Petro123, При запуске приложения на новом месте, форма 1 пытается считать конфиг, но его нет, тогда появляется форма с настройкой конфига(имя сервера, логин, пароль) после чего появляется форма аутентификации - логин пароль пользователя. Если конфиг есть, то просто запускается форма логина-пароля. Форма ввода логина пароля и логина запускается из первой формы(главной), главная форма скрывается. Но если закрыть форму ввода логина пароля на крестик, то просто появляется главная форма.
О, уже три формы

Во первых крестик можно скрыть. Во вторых есть событие OnClosing, при обработке которого можно отменить закрытие.

И самое верное - это запускать форму ввода логина пароля не из главной, а до этого.
Как показано в моём примере.
...
Рейтинг: 0 / 0
01.05.2018, 18:06
    #39638775
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11При запуске приложения на новом месте, форма 1 пытается считать конфиг, но его нет, тогда появляется форма с настройкой конфига
Код: c#
1.
2.
Initialze();
if (!IsConnect()) выход_и_закрытие_всего_на_свете()

т.е. внутри вашего метода:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
bool IsConnect()
{
if (КонфигаНет())
   if (ПоказатьФормуНастроек())
       ....
else
   return true;
}


это для тебя сложно?
Учись бить программу на куски.
...
Рейтинг: 0 / 0
01.05.2018, 18:09
    #39638777
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11,
вот тут у тебя вся программа из одного метода button_click()
21375255
Учись вводить свои методы иначе зароешься в логике.
Удачи!
...
Рейтинг: 0 / 0
01.05.2018, 18:12
    #39638779
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
Petro123,

я кажется нашел,как по-другому сделать. В файле program.cs такой код:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Formaut());
            using (Formaut FormLogin = new Formaut())                       ////Запускает форму с логином и паролем.
                if (FormLogin .ShowDialog() == DialogResult.OK)            ////Если выскакивает окошко с успехом - ОК!, то запуск главной формы.
            {
                Application.Run(new Form1());
            }
            


Вроде должно работать
...
Рейтинг: 0 / 0
01.05.2018, 18:14
    #39638780
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11skyANA, как бы нужно просто сделать, чтобы при нажатии на крестик формы логин-пароль закрывалось все приложение. А не просто эта форма
В форме ввода логина и пароля обычно две кнопки: OK и Cancel.
На первую вешают DialogResult.Cancel, на вторую DialogResult.Cancel.
Закрытие формы тоже приводит по к DialogResult.Cancel: Form.DialogResult Property .

Так что не понятно, почему у Вас не получается тупо обработать возвращаемое f.ShowDialog() значение.
...
Рейтинг: 0 / 0
01.05.2018, 18:15
    #39638782
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11Petro123,

я кажется нашел,как по-другому сделать. В файле program.cs такой код:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Formaut());
            using (Formaut FormLogin = new Formaut())                       ////Запускает форму с логином и паролем.
                if (FormLogin .ShowDialog() == DialogResult.OK)            ////Если выскакивает окошко с успехом - ОК!, то запуск главной формы.
            {
                Application.Run(new Form1());
            }
            



Вроде должно работать
Не надо делать Application.Run(new Formaut()), зачем? Вы читали справку о методе Application.Run()? Почитайте.
...
Рейтинг: 0 / 0
01.05.2018, 18:17
    #39638783
OlegEgorov11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
skyANA,

да не нужно, я согласен, просто когда исправил там код, забыл удалить, спасибо))
...
Рейтинг: 0 / 0
01.05.2018, 18:18
    #39638784
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
skyANAВ форме ввода логина и пароля обычно две кнопки: OK и Cancel.
На первую вешают DialogResult.CancelOK, на вторую DialogResult.Cancel.
...
Рейтинг: 0 / 0
01.05.2018, 18:24
    #39638785
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в sql
OlegEgorov11В файле program.cs такой код:
а теперь вызови ту форму чтобы сменить сервер на другой адрес, логин пароль.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Авторизация в sql / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]