I think he has found answer elsewhere or fix the problem himself but doesn't want to post the correct code here :)
2009/9/7 Andrew Badera <[email protected]> > > OP, > > I'm feeling kind even though you failed to use > http://dotnetdevelopment.pastebin.com > > One, why are you dealing with "rprofile" and "userprofile" in Session? > Why not a single session value for a single session entity? (Unless > there are multiple profile types?) > > Two, I suspect your "session ID" function may be an issue. > > Three, turn your session stuff into session-backed properties instead. > It's neater, cleaner, and you can do your own null/nothing checks > within the accessor, rather than in the middle of your otherwise clean > code. You'll have an easier time debugging this as well, because you > can set a single breakpoint to watch the value get touched -- just > make sure ALL session references get switched over to the > session-backed accessor. > > ∞ Andy Badera > ∞ +1 518-641-1280 > ∞ This email is: [ ] bloggable [x] ask first [ ] private > ∞ Google me: > http://www.google.com/search?q=(andrew<http://www.google.com/search?q=%28andrew>badera) > OR (andy badera) > > > > On Wed, Sep 2, 2009 at 9:26 PM, Gerard<[email protected]> wrote: > > > > here is some of the code: > > > > Login Page: > > > > Protected Sub Page_Load(ByVal sender As Object, ByVal e As > > System.EventArgs) Handles Me.Load > > Template.SetSmartPage(Me) > > Template.SetKeyCodeEvent(Me.txt_UserID, KeyMode.ToUpperCase) > > > > If Not Me.IsPostBack Then > > Template.SetInitialFocus(Me.txt_UserID) > > > > oUserProfile = New UserProfile() > > > > If Not Session("rProfile") Is Nothing Then > > Session.Add("Profile", oUserProfile) > > Else > > Session("UserProfile") = oUserProfile > > End If > > Else > > ' > > End If > > End Sub > > > > > > UserProfile file: > > > > Imports System.Data > > Imports System.Data.OracleClient > > Imports System.Web.UI > > Imports System.Web.UI.WebControls > > Imports System.Configuration > > Imports Microsoft.VisualBasic > > Imports CustomApp.DB > > > > Public Class UserProfile > > Public Enum LogType > > Login = 1 > > Logout = 2 > > End Enum > > > > Public Enum BoolType > > NotSet = -1 > > No = 0 > > Yes = 1 > > End Enum > > > > Private Shared lngSessionID As Long > > Private Shared strUserName As String > > Private Shared strUserFullNameEN As String > > Private Shared strUserFullNameCN As String > > Private Shared strUserGroupID As String > > Private Shared strDistOfficeCode As String > > Private Shared bltUpdateOtherDistrict As BoolType > > Private Shared bltEnquiryOtherDistrict As BoolType > > Private Shared strLoginIPAddr As String > > Private Shared strLoginDatetime As String > > Private Shared strLogoutDatetime As String > > > > 'Profile Management sub functions > > Public Property SessionID() As Long > > Get > > SessionID = lngSessionID > > End Get > > Set(ByVal value As Long) > > lngSessionID = value > > End Set > > End Property > > > > Public Property UserName() As String > > Get > > UserName = strUserName > > End Get > > Set(ByVal value As String) > > strUserName = value > > End Set > > End Property > > > > Public Property UserFullNameEN() As String > > Get > > UserFullNameEN = strUserFullNameEN > > End Get > > Set(ByVal value As String) > > strUserFullNameEN = value > > End Set > > End Property > > > > Public Property UserFullNameCN() As String > > Get > > UserFullNameCN = strUserFullNameCN > > End Get > > Set(ByVal value As String) > > strUserFullNameCN = value > > End Set > > End Property > > > > Public Property UserGroupID() As String > > Get > > UserGroupID = strUserGroupID > > End Get > > Set(ByVal value As String) > > strUserGroupID = value > > End Set > > End Property > > > > Public Property DistOfficeCode() As String > > Get > > DistOfficeCode = strDistOfficeCode > > End Get > > Set(ByVal value As String) > > strDistOfficeCode = value > > End Set > > End Property > > > > Public Property AllowUpdateOtherDistrict() As BoolType > > Get > > AllowUpdateOtherDistrict = bltUpdateOtherDistrict > > End Get > > Set(ByVal value As BoolType) > > bltUpdateOtherDistrict = value > > End Set > > End Property > > > > Public Property AllowEnquiryOtherDistrict() As BoolType > > Get > > AllowEnquiryOtherDistrict = bltEnquiryOtherDistrict > > End Get > > Set(ByVal value As BoolType) > > bltEnquiryOtherDistrict = value > > End Set > > End Property > > > > Public Property LoginIPAddr() As String > > Get > > LoginIPAddr = strLoginIPAddr > > End Get > > Set(ByVal value As String) > > strLoginIPAddr = value > > End Set > > End Property > > > > Public Property LoginDatetime() As String > > Get > > LoginDatetime = strLoginDatetime > > End Get > > Set(ByVal value As String) > > strLoginDatetime = value > > End Set > > End Property > > > > Public Property LogoutDatetime() As String > > Get > > LogoutDatetime = strLogoutDatetime > > End Get > > Set(ByVal value As String) > > strLogoutDatetime = value > > End Set > > End Property > > > > Public Function LogUserAction(Optional ByVal l_Type As LogType = > > LogType.Login) As Boolean > > Dim blnSuccess As Boolean = False > > Dim pa_Data As OracleParameterCollection > > > > Try > > pa_Data = New OracleParameterCollection() > > > > pa_Data.Add("out_log_datetime", OracleType.VarChar, 20) > > pa_Data("out_log_datetime").Direction = > > ParameterDirection.Output > > > > pa_Data.Add("io_session_id", OracleType.Number, 10) > > pa_Data("io_session_id").Direction = > > ParameterDirection.InputOutput > > pa_Data("io_session_id").Value = lngSessionID > > > > pa_Data.Add("in_user_id", OracleType.VarChar, 12) > > pa_Data("in_user_id").Direction = ParameterDirection.Input > > pa_Data("in_user_id").Value = strUserName > > > > pa_Data.Add("in_login_ip_addr", OracleType.VarChar, 15) > > pa_Data("in_login_ip_addr").Direction = > > ParameterDirection.Input > > pa_Data("in_login_ip_addr").Value = strLoginIPAddr > > > > pa_Data.Add("in_log_type", OracleType.VarChar, 1) > > pa_Data("in_log_type").Direction = > > ParameterDirection.Input > > pa_Data("in_log_type").Value = IIf(l_Type = LogType.Login, > > "I", IIf(l_Type = LogType.Logout, "O", "I")) > > > > pa_Data.Add("ret_Value", OracleType.VarChar, 1) > > pa_Data("ret_Value").Direction = > > ParameterDirection.ReturnValue > > > > clsSttstwDB.ExecuteSql("upkg_stt_usr_log.fn_user_log", > > CmdExecType.NonQuery, pa_Data, Nothing) > > > > 'Store Information > > Select Case l_Type > > Case LogType.Login > > 'Login > > lngSessionID = pa_Data("io_session_id").Value > > strLoginDatetime = pa_Data > > ("out_log_datetime").Value > > Case LogType.Logout > > 'Logout > > strLogoutDatetime = pa_Data > > ("out_log_datetime").Value > > End Select > > > > blnSuccess = (pa_Data("ret_Value").Value = "1") > > Catch exLog As Exception > > ' > > End Try > > > > LogUserAction = blnSuccess > > End Function > > > > Public Sub New() > > 'Initialize values > > lngSessionID = -1 > > strUserName = "" > > strUserFullNameEN = "" > > strUserFullNameCN = "" > > strUserGroupID = "" > > strDistOfficeCode = "" > > bltUpdateOtherDistrict = BoolType.NotSet > > bltEnquiryOtherDistrict = BoolType.NotSet > > strLoginDatetime = "" > > strLogoutDatetime = "" > > End Sub > > > > Protected Overrides Sub Finalize() > > ' > > MyBase.Finalize() > > End Sub > > End Class > > > > On 9月2日, 下午6時59分, Andrew Badera <[email protected]> wrote: > >> On Wed, Sep 2, 2009 at 4:42 AM, Gerard<[email protected]> wrote: > >> > >> > Dear sir or madam, > >> > >> > I have the problem to our web application using asp.net 2.0. The > >> > problem is that when user A login and then user B login, user A > >> > creates an item and saved. However, the item's created by and updated > >> > by are mentioned that it is created by user B!!! > >> > >> > I think there is some mess up with thesessionproblem. User A's > >> >sessionhas been overwrited by user B. Mysessionstate is > >> > <sessionState > >> > mode="InProc" > >> > cookieless="false" > >> > timeout="60" > >> > /> > >> > >> > Does anyone can help me with this ?? Thanks in advance!1 > >> > >> > Regards, > >> > Gerard > >> > >> Step 1: This has nothing to do withsessionlength, and probably > >> nothing to do with login state. > >> Step 2: Show us some code, via pastebin.com or similar, where the data > >> is supposed to be recorded, and where it is supposed to be > >> loaded/displayed. > >> > >> ∞ Andy Badera > >> ∞ This email is: [ ] bloggable [x] ask first [ ] private > >> ∞ Google me: > http://www.google.com/search?q=(andrew+badera)+OR+(andy+badera)-<http://www.google.com/search?q=%28andrew+badera%29+OR+%28andy+badera%29->隱藏被引用文字 > - > >> > >> - 顯示被引用文字 - > > >
