powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / : Форма ввода пароля.
3 сообщений из 3, страница 1 из 1
: Форма ввода пароля.
    #38127793
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форма ввода пароля взята из примера, поставляемого с STUDIO'2010
В проекте "UserInfo"
В свой проект из примера я добавил также 2 класса
SampleIIdentity.vb и SampleIPrincipal.vb
Отредактировал соотвтетственно к своим именам форм.
В примере работают 2 строки
Код: vbnet
1.
2.
3.
4.
5.
6.
If (My.User.IsAuthenticated) Then
            ' Пользователь уже прошел проверку подлинности, так что просто отобразите главную форму.
            ' Проверка подлинности пользователя не выполнена, поэтому включите пользовательскую проверку подлинности и авторизацию
            Me.Close()
            My.Forms.MainForm.Show()
        End If


А у меня ПРИВОДЯТ к тому, мигает быстро на экране, закрывается
моя LoginForm1, а MDIParent1-форма должна бы быть на экране, ТАК И ОНА
ТОЖЕ ЗАКРЫТА !
ПОЧЕМУ?
СПАСИБО.

Ниже текст в моей форме LoginForm1
, по содержанию соответствует тексту в примере, LoginForm
Код: vbnet
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
Public Class LoginForm1
    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        Dim samplePrincipal As New 
        My.User.CurrentPrincipal = samplePrincipal

        If (Not My.User.IsAuthenticated) Then
            'Проверьте правильность имени пользователя и пароля с помощью My.User
            Me.UsernameTextBox.Text = String.Empty 
            Me.PasswordTextBox.Text = String.Empty
            MessageBox.Show("Username or password are incorrect")
        Else
            Me.Visible = False 
            My.Forms.MDIParent1.Show() ' MDIParent1 - имя моей MDI DIALOG WINDOW ( ФОРМА ) 
        End If
    End Sub

    Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
        Me.Close() 
    End Sub

    Private Sub LoginForm1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
          If (My.User.IsAuthenticated) Then
            Me.Close() ' закрывается форма "LoginForm1"
            ' в этом месте приводит к тому, что не видна MDI-forma,
            ' открытая нижерасположенном оператторе: 
My.Forms.MDIParent1.Show() 
        End If
    End Sub

    Public Sub New()
        InitializeComponent() ' не причина
    End Sub
End Class

НИЖЕ ТЕКСТ из ПРИМЕРА – LoginForm
Public Class LoginForm

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        Dim samplePrincipal As New SampleIPrincipal(Me.UsernameTextBox.Text, Me.PasswordTextBox.Text)
        My.User.CurrentPrincipal = samplePrincipal

        If (Not My.User.IsAuthenticated) Then
            'Проверьте правильность имени пользователя и пароля с помощью My.User
            Me.UsernameTextBox.Text = String.Empty
            Me.PasswordTextBox.Text = String.Empty
            MessageBox.Show("Username or password are incorrect")
        Else
            ' Имя пользователя и пароль правильны, так что отобразите главную форму.
            Me.Visible = False
            My.Forms.MainForm.Show()
        End If
    End Sub

    Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
        Me.Close()
    End Sub

    ' Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' ниже я сам поменял лапами 1 убрал в имени LoginForm1_Load
    Private Sub LoginForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Если для текущего пользователя не выполнена проверка подлинности, запросите имя пользователя и пароль и используйте пользовательскую 
        ' пару IPrincipal/IIdentity для выполнения пользовательской проверки подлинности и авторизации. Образец небезопасной 
        ' реализации IPrincipal/IIdentity приведен в примере.
        '
        ' См. веб-страницу http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetHT06.asp для 
        ' получения дополнительных сведений об интерфейсах IPrincipal и IIdentity.
        If (My.User.IsAuthenticated) Then
            ' Пользователь уже прошел проверку подлинности, так что просто отобразите главную форму.
            ' Проверка подлинности пользователя не выполнена, поэтому включите пользовательскую проверку подлинности и авторизацию
            Me.Close()
            My.Forms.MainForm.Show()
        End If
    End Sub
End Class
...
Рейтинг: 0 / 0
: Форма ввода пароля.
    #38128006
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vova_1805,

зайди в свойства проекта (меню Project -> [Название Проекта] Properties), на вкладке Application, в пункте Shutdown mode выбери When last form closed

но надо следить за закрытием приложения...
можно твою форму-логин назначить на Splash screen, тогда верхний пункт не нужен, просто при не правильном логине/пароле - завершать Application...

как-то так...
...
Рейтинг: 0 / 0
: Форма ввода пароля.
    #38129733
Фотография _=ДОБРЫНЯ=_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы порекомендовал принять принцып как написано здесь . После этого поста я переделал работу своей формы логина - и стало намного лучше и легче.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / : Форма ввода пароля.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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