Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125

Можно ли как то сделать так, чтобы сначала отображалась форма авторизации?

12.04.2021, 10:10. Показов 5243. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня. Подскажите пожалуйста. Есть приложение написанное ранее мной, однако от меня затребовали чтобы, работа с приложением была по форме авторизации - то есть после ввода логина и пароля, нужно чтобы еще и была связь формы логина и пароля с основной формой. Когда то я сталкивался с таким в делфи, но там нужно было сначала на форме 1 писать авторизацию, а на форме 2 уже программу иначе если сделать программу на форме 1 и просто закрыть авторизацию - программа запускала основную форму. Можно ли как то сделать так, чтобы сначала отображалась форма авторизации, а потом уже при введённых верно данных открывалась основная форма и не переписывать все заново.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.04.2021, 10:10
Ответы с готовыми решениями:

Как сделать так, чтобы форма отображалась на весь экран как в играх
Как сделать так, чтобы форма отображалась на весь экран как в играх?

Как сделать чтобы при последующем открытии форма не отображалась?
Есть документ. При открытии отображается форма для ввода инфы. Как сделать чтобы при последующем открытии форма не отображалась? Знаю...

Как сделать так, чтобы по оси абсцисс отображалась дата
Вопрос в следующем: как сделать так, чтобы по оси (x) отображалась дата, Насколько я понял, надо объявить масси с нужными датами, потом...

38
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
13.04.2021, 17:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Daimonos Посмотреть сообщение
Ваш проект у меня не компилируется(
Судя по всему у вас старая версия студии, кортежи ввели в C# 7, это вроде .net 4.8. В любом случае, можете веместо участка с _userSource.Any подставлять свою логику проверки (вообще-то вы точно должны были подставить свою), а смотреть только что идет перегрузка OnLoad с внутреним вызовом ShowDialog. Так по идеи должно компилится, хотя вся суть была скинута выше текстом, по хорошему нужно учится читать код, а не копипастить. Nya.CyberForum2812655.zip

Цитата Сообщение от Daimonos Посмотреть сообщение
Помогите пожалуйста допилить и разобраться почему не получает форма данные
Прикрепите свой проект.

Цитата Сообщение от Andreyip Посмотреть сообщение
Wolfdp, Неправильный у вас подход, хранить пароль и логин в долгосрочной памяти это плохо
Подход неправильный начиная с того что это WinForms, а не WPF. Так что подкол не защитан, сейчас бы в вопросах из Faq обсуждать энтерпрайз подход. И если уж взялись агрументировать почему условный AuthService лучше запихнуть в форму авторизации, так пишите сразу что "код будет в одном месте, и сервис будет существовать только в скопе вызова авторизации".
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
13.04.2021, 19:13  [ТС]
Блин. Ну делаю так же..
Вложения
Тип файла: rar auth.rar (154.5 Кб, 5 просмотров)
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
13.04.2021, 19:16  [ТС]
Wolfdp, Вот сделал уменьшенную копию) а то в первозданном виде 5к+ строк
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18359 / 14289 / 5370
Регистрация: 17.03.2014
Сообщений: 28,968
Записей в блоге: 1
13.04.2021, 19:42
Цитата Сообщение от Daimonos Посмотреть сообщение
Ну делаю так же..
Не так же. Зачем вы подписываетесь на событие TextChanged у Label? Какое волшебство по вашему должно привести к генерации этого события?

Присвойте просто значения нужным лейблам прямо в конструкторе
C#
1
2
3
4
5
6
7
8
9
10
11
        public Form1(string id1, string id2, string rank)
        {
            InitializeComponent();
            this.id1 = id1;
            this.id2 = id2;
            this.rank = rank;
 
            IDName.Text = id1;
            IDName2.Text = id2;
            IDRank.Text = rank;
        }
Еще в классе LoginForm точно не нужно иметь public поля id1, id2, rank, admin1, admin. Как минимум их лучше сделать private. По максимуму первые три вообще можно убрать и использовать локальные переменные внутри метода btnEnter_Click. Два последних наверное следует сделать константами.
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
13.04.2021, 20:06  [ТС]
OwenGlendower, Ура! Заработало! Спасибо!
Цитата Сообщение от OwenGlendower Посмотреть сообщение
admin1, admin. Как минимум их лучше сделать private.
А если учесть что в основном проекте их у меня по 22 (то есть 22 логина должны иметь доступ) может в целях экономии места сделать отдельный файл куда вынести эти данные?
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
14.04.2021, 07:07  [ТС]
По теме - разобрался) Но вот вчера вечером у меня возник такой вопрос. После авторизации основная форма запускает процесс WINWORD (в принципе она и должна работать с вордом) но, после того как я нажимаю например на кнопку выхода или на кнопку "закрыть" на самой форме - то проект останавливается, программа закрывается, а процесс ворда остается висеть, и так с каждой компиляцией в диспетчере задач вешается новый процесс WINWORD. Как сделать чтоб он завершался с закрытием и повлияет ли это на открытые документы, которые не связаны с программой?
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
14.04.2021, 08:11
Wolfdp, Да какая разница winform, web, wpf если есть возможность утащить пароль в открытом виде то это небезопасно. Зачем его таскать между формами если уже на форме логина уже понятно что пользователь авторизовался.

Добавлено через 1 минуту
Daimonos, вы вызываете word через interoop если так то это com обьект, и ссылки на эти объекты нужно удалять после использования. Иначе ворд так и будет висеть.
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
14.04.2021, 08:57  [ТС]
ну я прописывал
oDoc.Close(); но либо не везде либо не там где надо )
0
68 / 56 / 15
Регистрация: 30.01.2020
Сообщений: 332
14.04.2021, 09:26
Цитата Сообщение от Daimonos Посмотреть сообщение
oDoc.Close();
нужно у Application вызвать Quit()

Добавлено через 4 минуты
я ещё после этого делаю GC.Collect()
(не лучшее решение, но у меня работает)
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
14.04.2021, 16:21  [ТС]
Хм... До того как связал с основной формой авторизацию у меня эта штука работала на еще и WinXP, а сейчас почему то только на 7-10... А на старой выдает вот это
Миниатюры
Можно ли как то сделать так, чтобы сначала отображалась форма авторизации?  
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
14.04.2021, 18:07
Daimonos,
В двух словах решение следующее. Надо просто создать две папки:

C:\Windows\System32\config\systemprofile \Desktop
C:\Windows\SysWOW64\config\systemprofile \Deskto
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
14.04.2021, 18:46  [ТС]
Это конкретно в Windows XP?
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
14.04.2021, 20:31
Цитата Сообщение от Andreyip Посмотреть сообщение
Wolfdp, Да какая разница winform, web, wpf если есть возможность утащить пароль в открытом виде то это небезопасно.
Вы сейчас стебетесь?
1. Если троян нацелен на конкретный софт, то хоть во временой памяти, хоть в постоянной -- он его стащит банально по перехвату клавиш.
2. Форма авторазиции обьявлена локально и живет ровно до вызова GC после отработки Load. Как и локальный login password. В чем разница с тем что это дело будет находится внутри это формы?
3. Любой десктопный софт подразумевает что запускается в довереной среде, ибо вся эта "защита от хакеров" от лукавого. Максимум нужно не хранить в открытом виде сохраненное на диске с общими правами доступа (по сути в папке юзера и program files). Если же подразумевается что кто-то сможет снять дамп памяти и проанализировать его... кажись уже поздно рыпаться.

Цитата Сообщение от Daimonos Посмотреть сообщение
Это конкретно в Windows XP?
Жак, микрософт уже семерку приговорили, а люди все еще живут на ХРюше...
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
15.04.2021, 05:54  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
Жак, микрософт уже семерку приговорили, а люди все еще живут на ХРюше...
На работе как раз и пользуемся тем, что майкрософт приговорил ))) У некоторых коллег стоят десктопы с 256 - 512 RAM DDR1( Так что пишу приложение в среде VS 2019, однако приходится адаптироваться под ХРюшу
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
28.04.2021, 16:40  [ТС]
Доброго всем... Ошибка все же продолжает вылазить....


Кликните здесь для просмотра всего текста

Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.Runtime.InteropServices.COMExcept ion (0x800A1423): Данный файл открыт только для чтения.
(C:\...\28.04.2021_Kassandra_out_ .docx)
в Microsoft.Office.Interop.Word._Document. SaveAs(Object& FileName, Object& FileFormat, Object& LockComments, Object& Password, Object& AddToRecentFiles, Object& WritePassword, Object& ReadOnlyRecommended, Object& EmbedTrueTypeFonts, Object& SaveNativePictureFormat, Object& SaveFormsData, Object& SaveAsAOCELetter, Object& Encoding, Object& InsertLineBreaks, Object& AllowSubstitutions, Object& LineEnding, Object& AddBiDiMarks)
в Kassandra.Form1.ВыгрузитьВWORDToolStripM enuItem_Click(Object sender, EventArgs e)
в System.Windows.Forms.ToolStripItem.Raise Event(Object key, EventArgs e)
в System.Windows.Forms.ToolStripMenuItem.O nClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.Handl eClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.Handl eMouseUp(MouseEventArgs e)
в System.Windows.Forms.ToolStrip.OnMouseUp (MouseEventArgs mea)
в System.Windows.Forms.ToolStripDropDown.O nMouseUp(MouseEventArgs mea)
в System.Windows.Forms.Control.WmMouseUp(M essage& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Mes sage& m)
в System.Windows.Forms.ToolStrip.WndProc(M essage& m)
в System.Windows.Forms.ToolStripDropDown.W ndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
Kassandra
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Program%20Files%20(x86)/%D0%9C%D0%B0%D1%81%D1%81%D0%B0%D0%BD%D0% B4%D1%80%D0%B0/File.exe
----------------------------------------
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4270.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.


Документы сохраняет первично нормально. Затем начинает сбоить. Шаблон и сохраненные документы без пометки "только для чтения". Где косяк то?
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
28.04.2021, 16:45
Цитата Сообщение от Daimonos Посмотреть сообщение
Данный файл открыт только для чтения.
Вы юзеров из excel подтягиваете?
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
28.04.2021, 16:50  [ТС]
Wolfdp, нет, в форме авторизации статично забиты логины и пароли

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 private void BtnAuth_Click(object sender, EventArgs e)
        {
            this.AcceptButton = btnAuth;
            AuthName auth = new AuthName();
            
 if (tbLogin.Text == "Chief" && tbPass.Text == "1234")
            {
                id1 = auth.chief;
                id2 = auth.chief1;
                posada = "Начальник";
                Form1 f1 = new Form1(id1, id2, posada);
                //FormAuthorization f2 = new FormAuthorization();
                this.Hide();
                f1.ShowDialog();
                this.Close();
            }
....
        }
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
28.04.2021, 16:59
Daimonos, ок, в любом случае в тексте ошибки указано что вы пытаетесь сохранится в 28.04.2021_Kassandra_out_ .docx, который открыт только для чтения. Судя по ToolStripItem вы в меню выбираете какое-то действие, которое приводик к работе с этим документом.
0
2 / 2 / 0
Регистрация: 26.05.2017
Сообщений: 125
28.04.2021, 20:18  [ТС]
Wolfdp, тогда кажется понял... У меня после того, как я закрываю приложение остается висеть в процессах WINWORD.EXE , но даже когда я принудительно его убиваю, все равно почему то сохраняет только при первом открытии программы, а дальше выбивает (но странно еще то, что на некоторых машинах работает это все корректно а на некоторых выводит вот ошибку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2021, 20:18

Сделать форму авторизации так, чтобы сначала показало приветствие, а затем показало авторизацию
Не могу сделать форму авторизации так, чтобы сначала показало приветствие, а затем показало авторизацию. Чуть чуть осталось... ...

как сделать так, чтобы галерея хорошо отображалась на мобильных устройствах?
http://evromaster03.ru/gallery.php на нокиа люмиа все время убегает вправо, поставил &lt;meta name=&quot;viewport&quot;...

Как сделать так, чтобы вместо кода клиента отображалась его фамилия?
Здравствуйте, помогите пожалуйста.Есть 2 таблицы они связаны. Как сделать так,чтобы вместо кода клиента отображалась его фамилия.Код...

Как сделать так чтобы программа при запуске отображалась в системном трэе а не в обычном окне
Здравствуйте , подскажите пожалуйста как можно сделать так чтобы программа при запуске отображалась в системном трэе а не в в окне. Пишу...

Как сделать так, чтобы выпадающее меню в Проводнике отображалась постоянно, а не закрывалось после нажатия?
Приветствую форумчане! В окнах windows (любой) в каждом практически окне есть строка меню (файл, вид...). Нажимаешь на любую кнопку на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru