Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Session với Winfrom

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    52

    Mặc định Session với Winfrom

    Không biết bên winfrom có kiểu gì làm giống webfrom có biến session được không các anh?
    em đang muốn làm cái phần đăng nhập có cái nút checkbox lưu thông tin đăng nhập cho lần sau!
    chickenIT

  2. #2
    Ngày gia nhập
    06 2011
    Bài viết
    277

    trong winform làm j có biến session bạn!!

    Chỉ có biến dùng chung thui! Bạn khai báo biến dùng chung nhen!
    Sống là để cho đi và ...... Nhận lại

  3. #3
    Ngày gia nhập
    06 2011
    Bài viết
    52

    Mình nhớ là có đọc bài tương tự trong diễn đàn này mà kiếm mãi không ra.
    chickenIT

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Session giả! Bạn dùng static với field là ok. Ví dụ:
    public class MySession
    {
    public static int nTest=2;//khoi tao;
    .....
    }
    khi dùng chỉ việc gọi: MySession.nTest=...
    (kèm theo namespace nếu bạn để nó sâu sâu), đảm bảo giá trị lưu như session. Nếu muốn như cookies thì chắc phải chơi DB hoặc File thui
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  5. #5
    Ngày gia nhập
    06 2011
    Bài viết
    52

    Hờ! nếu em bật 2 tài khoản cùng 1 lúc thì lưu sao anh?
    chickenIT

  6. #6
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Mặc định Session với Winfrom

    Tạo mảng hay list để lưu nó nhé bạn!!
    Sống là để cho đi và ...... Nhận lại

  7. #7
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Session sinh ra từ khái niệm sự kết nối giữa web server và browser của client.
    Biến trong webform có giới hạn trong vòng của webform. Mỗi lần server nhận được post back từ client form thì nó sẽ post back một form mới và các biến trong form tính lại từ đầu. Vì vậy muốn giữ giá trị biến qua các lần post, người ta phải dùng biến Session.

    Winform điều khiển form ngay trong máy client và không cần tới server, tức là chả có post tới post lui gì cả. Vì vậy các biến trong winform đều có giá trị trong suốt thời gian form còn chạy. Vì vậy không có lý do gì để winform phải sử dụng đến biến Session (và khái niệm session trong winform hoàn toàn vô nghĩa).

    Đối với web server, một kết nối với client là một session cho nên tất cả các browser windows trên client đều dùng chung 1 session.

    Winform app không được server điều khiển nên không thể dùng chung cái gì cả. Ngay cả nếu bạn dùng static class như đề nghịn ở trên cúng không được vì mỗi appdomain dùng một copy riêng của cái static class trên. Chỉ khi nào bạn mở nhiều forms trên cùng một process (vd dùng thread) thì chúng mới chia sẻ cái static class.

    Như vậy nếu muốn mở nhiều forms và dùng chung dữ liệu đăng nhập thì có một trong hai cách:

    1. Chỉ chạy 1 process, các forms được mở bằng threads. Dùng static class để chia sẻ dữ liệu

    2. Emulate cách dùng của cookies. Form đăng nhập đầu tiên có nhiệm vụ ghi lại dữ liệu trong một file nào đó đẻ các form sau đọc và lấy dữ liệu và form đóng cuối cùng có nhiệm vụ xóa file này. Nên ghi lại ngày giờ hết hạn của file để tránh rắc rối về sau.

  8. #8
    Ngày gia nhập
    06 2011
    Bài viết
    52

    Theo ý hiểu của em cách 2 :
    có 1 from đăng nhập ghi dữ liệu vô file xml chẳng hạn . có nút thoát tài khoản ,nếu thoát thì xóa dữ liệu trong xml liên quan.
    Khi mình bật ứng dụng làm 2 cửa sổ. cửa sổ 1 là tài khoản 1, cửa sổ 2 tài khoản 2(lúc bật cửa sổ 2 phải thoát tài khoản 1 để nhập tài khoản 2)
    Vậy khi thao tác trên cửa sổ 1 khi mà các thông tin liên quan đến tài khoản đã bị xóa hết thì làm thế nào ^^! chẳng nhẽ là 1 lần đăng nhập tự tạo 1 file lưu trữ mới .
    chickenIT

  9. #9
    Ngày gia nhập
    06 2011
    Bài viết
    52

    xin phép up ... bạn nào có giải pháp khác tối ưu không?
    Đã được chỉnh sửa lần cuối bởi o0ocuchuoio0o : 19-03-2012 lúc 10:06 PM. Lý do: ko hiểu cách 1 của anh votichsu (nếu có 1 đống from mà thế thì...^^!)
    chickenIT

  10. #10
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Tùy vào kiến trúc chương trình của bạn, nếu chuơng trình của bạn có sử dụng database thì lưu session vào database hoặc có thể lưu vào sqlite. Dùng 1 thread or 1 timer để monitor cái session đó, hoặc nếu bạn dùng WCF thì dùng viết 1 service để quản lý session, khi cái session timeout thì dùng callback để thông báo cho client.
    Hoặc dùng global statis class để lưu session như mấy bạn kia nêu, hoặc thử tìm hiểu cơ chế caching (cả win lẫn web)
    Demo mấy cái hình về session trên winform :


    Cánh Chym ứ mỏi

Các đề tài tương tự

  1. Lấy 1 session trong 1 mảng session ???
    Gửi bởi depzai trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 18-01-2014, 12:14 PM
  2. Khai báo biến Session trong Class.cs lỗi 'The name 'Session' does not exist in the current context'?
    Gửi bởi nguyenvantien87 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 26-12-2012, 06:56 PM
  3. Sự khác nhau giữa HttpContext.Current.Session và Session là như thế nào?
    Gửi bởi thvnhn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 30-08-2012, 10:38 AM
  4. Server quản lý session như thế nào? Làm thế nào để biết 1 session kết thúc
    Gửi bởi GaPro trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 19-01-2011, 10:15 AM
  5. Session trong C# asp.net là gì? Cơ chế làm việc của session là gì?
    Gửi bởi congtuazx trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 03-07-2009, 04:31 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn