Chuyển từ form đăng nhập sang chính winform ngôn ngữ c# lập trinh desktop

mn cho em hỏi em từ form đăng nhập sang form chính và đăng nhập thành công sau đó ẩn mục đăng nhập thành công và chuyển sang form chính mà sao nó ko chuyển
vậy ạ

Không thấy nói cụ thể ngôn ngữ lập trình nào, cũng không nói đến cơ chế đăng nhập sử dụng cái gì để quyết rằng người dùng đã đăng nhập nên rất khó để bạn nhận được câu trả lời giải quyết được vấn đề của bạn.

Vì vậy, mình giả sử bạn không dùng Ajax hoặc kỹ thuật tương đương, tức trang chứa form và trang xử lý là 2 trang khác nhau. Thì khi bấm submit form (trang 1) của bạn, dữ liệu sẽ chuyển cho script xử lý (trang 2), script sẽ tra vào CSDL xem có username và mật khẩu? (giả sử user được lưu trong DBMS dạng CSDL quan hệ thông dụng hoặc NoSQL thông dụng).

Lúc này, đăng nhập thành công nghĩa là ta tìm thấy username trong cơ sở dữ liệu, mật khẩu sau khi băm khớp với băm (có thể khớp thông qua hàm xử lý chứ chưa chắc đã khớp theo kiểu so ký tự) trong CSDL. Thành công rồi thì làm sao để trang khác nhận biết? Trong thực tế người ta dùng session hoặc cookie là thông dụng nhất, nhờ check vào session hoặc cookie để biết là đã login hay chưa nhờ sự tồn tại & giá trị của session hoặc cookie. Lúc ta đã check được rồi thì ta có thể làm gì đó tuỳ: ẩn form, thông báo gì đó hoặc cấm đăng nhập lần 2 mà truy cập trang đăng nhập sẽ hiện nút Thoát chẳng hạn.

Câu hỏi đặt ra là tại sao lập trình web lại rườm rà như vậy mà lập trình desktop thì đăng nhập gọn nhẹ hơn? Lý do: lập trình web hiện nay không hẳn single page như desktop, các biến dùng chung cho đến hết chương trình. Lịch sử đó là bởi W3C được làm ra như vậy nên các giá trị nếu không thông qua cookie, session thì rụng rơi.

Sau đoạn rất lùng nhùng ở trên, mình muốn nói chủ topic rằng giả sử a.html là trang form, và b.aspx hoặc b.php hay b.jsp, b.py (vì mình không rõ bạn lập trình ngôn ngữ nào) là xứ lý đăng nhập, nghĩa là b sẽ kiểm tra xem đăng nhập thành công không, nếu thành công, nó sẽ gửi header về trình duyệt để chuyển trang, cụ thể cú pháp gửi header như thế nào thì tra cứu tương ứng với ngôn ngữ bạn xài, mình xài PHP thì nó đơn giản cực header(‘Location: myurl’); có thể về a.html hoặc c.html hay gì đó tuỳ bạn.

Túm cái quần chip lại: trước khi lập trình web thì phải hiểu Understanding Web Authentication behind the login screen rồi mới tiến hành. Kiểu làm mà không hiểu gì hết, làm mò thì chỉ thích hợp với những cái dạng thô sơ, làm việc chân tay thôi, cái cần nguyên lý máy móc, cách ấy sẽ tịt ngóm, và nếu sợ tiếng Anh thì cũng rất là quan ngại vậy.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?