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ể đăng nhập Analysis service ở một sql server khác cùng mạng
- lỗi hiển thị trên web
- Tạo webservice chạy tự động khi start window
- Cách Authentication bằng OpenAM OpenDJ và cách get data từ LDAP về db của mình?
- Bind dữ liệu cho combobox nằm trong aspxgridview của devexpress khi ở chế độ edit
- Open Source Social Networking using .NET ??????
- Cách sử dụng JQuery trong visual studio
- Cách load 1 phần dữ liệu trong asp.net ,mà không ảnh hưởng đến các thành phần khác
- Trang giỏ hàng tự thêm số lượng khi refesh, sửa như thế nào?
- Xuất DataGridView ra PDF như thế nào?
-
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
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...