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 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)- 
>> 隱藏被引用文字 -
>>
>> - 顯示被引用文字 -
>

Reply via email to