Chủ đề: Vấn đề Sesion ASP.NET
-
19-06-2015, 10:36 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Vấn đề Sesion ASP.NET
Trong xử lí login mình có code lưu session khi nhấn vào button Login như sau:
Mã:if ( CheckLogin(txtUserID.Text,txtPassword.Text) == true ) { Session["UserID"] = txtUserID.Text.Trim(); // ghi nhan session UserID }
Mã:public static string ID = HttpContext.Current.Session["UserID"].ToString(); // Thì Khi debug thì nó báo là không thấy Session trên. Mặc dù mình kiểm tra ở hàm xử lý login thì thấy session có giá trị. protected void Page_Unload(object sender, EventArgs e) { Session.Remove("UserID"); Session.RemoveAll(); } protected void Page_Load(object sender, EventArgs e) { }
View more random threads:
- Không thể lưu Phonemic từ Textbox vào Database
- Export dữ liệu từ datatable ra excel không thành công (không báo lỗi)
- Tự động kết thúc(thay đổi) quảng cáo khi hết thời gian
- cách login account facebook (basic application) trong Asp.Net Mvc 4 ?
- Tạo crystal report từ storeproduce
- Dùng Jquery gửi formcollection qua Controller trong MVC3
- Facebook Like, làm sao có thể lấy dc id của bài đã dc like?
- Cách chuyển từ Gridview sang DataList trên web ASP.NET?
- Cách sử dụng Read stream với Socket
- IIS báo lỗi LinQ (NullReferenceException) (có hình)
-
19-06-2015, 11:43 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bạn cần phải kiểm tra Session có bị null không trước khi get nó về, bởi session tồn tại 1 time nhất định, có thể trong thời gian a bạn truy cập nó chưa die thì get về ko có lỗi nhưng đến time b thì nó đã die nên khi bạn get về đương nhiên sẽ bị null
if( Session["UserID"] != null){
public static string ID = HttpContext.Current.Session["UserID"].ToString();
}
-
19-06-2015, 03:12 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi duong2492
-
19-06-2015, 05:23 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
public static string ID = HttpContext.Current.Session["UserID"].ToString();
Nhiều người sai lầm ở chỗ là là dùng static, static variable là shared variable. Những gì liên quan đến user base không nên dùng static.
Nên dùng static variable cho những tình trạng như là: number of regsitered users, user onlines ... những gì mà tất cả user shared với nhau.
Trong lệnh này không muốn blow up bạn có thể viết như sau:
public static string ID = HttpContext.Current.Session["UserID"] + "";
Mình khuyên nên sử dụng:
public string ID = HttpContext.Current.Session["UserID"] + "";
-
19-06-2015, 06:12 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nếu là người có kinh nghiệm thiết kế web sẽ không chỉ người khác gắn giá trị trực tiếp của 1 object ngay khi nó vừa khởi tạo.
Mặc dù gắn trực tiếp vào nó vẫn nhận giá trị, nhưng chỉ có mấy thằng gà mờ nó mới làm như vậy.
Cái này thuộc căn bản của C#.
Vì sao?
Khi mà không có bất kỳ liên kết nào trỏ tới class đó. Thì giá trị của biến nó vẫn mặc định như vậy. Không hề thay đổi.
Ví dụ:
Trường hợp của chủ topic là chứa UserID. Vậy khi user logout thì sao?
Giả sử bạn quên xóa giá trị của Session, vậy giá trị của ID vẫn còn.
Nếu bạn xóa giá trị của Session, vậy nó sẽ báo lỗi Object reference not set to an instance of an object.
Một trong những nguyên tắc vàng khi học về C# là mọi thứ cần phải được khai báo rõ ràng trước khi sử dụng. Giống như vầy.
Mã:public class MyClass{ public string ID {get; set; } public MyClass(string id) { this.ID = id; }} public class AnotherClass{ string temp = String.Empty; temp = Session["UserId"].ToString(); MyClass mc = new MyClass(temp); }
-
20-06-2015, 03:12 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:public class MyClass{ public string ID {get; set; } public MyClass(string id) { this.ID = id; }} public class AnotherClass{ string temp = String.Empty; temp = Session["UserId"].ToString(); MyClass mc = new MyClass(temp); }
Cái này sách ViệtNam chỉ bác ? MyClass rồi AnotherClass ? Bác có biết là mỗi class bác làm là system bị chậm lại không? Mình không thấy lý do nào mà phải tạo class trong another class.
Mình nghĩ sở dĩ bạn kia làm static, vì bạn ấy không muốn = new ClassCu?aBanAy() trong mỗi trang. Nhưng đã dùng static sai chổ
-
20-06-2015, 07:59 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Dọn lên sẵn cũng không biết đường ăn à?
Mã:if (Session["UserID"] != null){//}
Gộp chung lớp chứa dữ liệu nguồn với lớp gọi dữ liệu để thực thi lại chung 1 class?
Dở hơi vừa thôi. Nói thế thì từ winform đến web chỉ cần duy nhất 1 class là đủ.
Nói cứ như search google đọc mà k biết gì.
Thậm chí có thể còn k biết tại sao Microsoft cho ra interface, abstract class, base class, struct...
-
22-06-2015, 01:07 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Session value bị mất khi Redirect??? Bạn chắc không?
-
22-06-2015, 06:18 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi VNFox
- - - Nội dung đã được cập nhật ngày 22-06-2015 lúc 11:16 AM - - -
Gửi bởi villbe
- - - Nội dung đã được cập nhật ngày 22-06-2015 lúc 11:18 AM - - -
Gửi bởi duong2492
-
24-06-2015, 09:29 AM #10Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi VNFox
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...