<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Security</title><link>http://forums.asp.net/25.aspx</link><description>All about ASP.NET security (authentication, authorization, membership, roles, etc.) and the Login controls. &lt;a href="http://aspadvice.com/SignUp/list.aspx?l=24&amp;c=17" target="_blank"&gt;Email List&lt;/a&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1893293.aspx</link><pubDate>Wed, 05 Sep 2007 08:43:42 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1893293</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1893293.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1893293</wfw:commentRss><description>&lt;p&gt;Could you put up your code...as to what you did..where did you stopped. Lets try to get this working..:P&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1892562.aspx</link><pubDate>Tue, 04 Sep 2007 22:24:13 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1892562</guid><dc:creator>patrickdrd</dc:creator><author>patrickdrd</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1892562.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1892562</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;dropped that,&lt;/p&gt;&lt;p&gt;couldn&amp;#39;t make it work,&lt;/p&gt;&lt;p&gt;but, if you have any ideas, I would be more than glad to hear! &lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1891925.aspx</link><pubDate>Tue, 04 Sep 2007 15:24:30 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1891925</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1891925.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1891925</wfw:commentRss><description>&lt;p&gt;Hi Patrick,&lt;/p&gt;
&lt;p&gt;How is it going? Where are we with this?&lt;/p&gt;
&lt;p&gt;I also thought about using a singleton pattern to acquire authentication once and use the static object around.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Good luck&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1830057.aspx</link><pubDate>Mon, 30 Jul 2007 08:40:09 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1830057</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1830057.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1830057</wfw:commentRss><description>&lt;p&gt;Sorry I was away.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you please let me know whats remaining. And please could you mark all those answers that helped you.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1827901.aspx</link><pubDate>Fri, 27 Jul 2007 18:59:45 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1827901</guid><dc:creator>patrickdrd</dc:creator><author>patrickdrd</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1827901.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1827901</wfw:commentRss><description>&lt;p&gt;thanx all for your answers,&lt;/p&gt;&lt;p&gt;especially you naturehermit,&lt;/p&gt;&lt;p&gt;couldn&amp;#39;t implement the last one,&lt;/p&gt;&lt;p&gt;anyway thanx,&lt;/p&gt;&lt;p&gt;great way for a discussion &lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1812439.aspx</link><pubDate>Thu, 19 Jul 2007 13:51:17 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1812439</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1812439.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1812439</wfw:commentRss><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Whats the current state of play with this one.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1810216.aspx</link><pubDate>Wed, 18 Jul 2007 13:51:31 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1810216</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1810216.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1810216</wfw:commentRss><description>&lt;p&gt;You know i realised that article is for visual studio 2003 and .net framework 1.1. You can download the accompanying zip file for trying..&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1810176.aspx</link><pubDate>Wed, 18 Jul 2007 13:36:01 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1810176</guid><dc:creator>patrickdrd</dc:creator><author>patrickdrd</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1810176.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1810176</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m not using inproc, i&amp;#39;m using:&lt;/p&gt;&lt;p&gt;&lt;font color="#0000ff" face="Courier New, Courier, mono" size="2"&gt;&amp;lt;sessionState &lt;br /&gt;
            mode=&amp;quot;&lt;span id="__firefox-findbar-search-id" style="padding:0pt;background-color:yellow;color:black;display:inline;font-size:inherit;"&gt;StateServer&lt;/span&gt;&amp;quot;&lt;br /&gt;
            stateConnectionString=&amp;quot;tcpip=127.0.0.1:42424&amp;quot;&lt;br /&gt;
            sqlConnectionString=&amp;quot;data source=127.0.0.1;user id=sa;password=letmein&amp;quot;&lt;br /&gt;
            cookieless=&amp;quot;false&amp;quot; &lt;br /&gt;
            timeout=&amp;quot;20&amp;quot; &lt;br /&gt;
            /&amp;gt;&lt;/font&gt; &lt;/p&gt;&lt;p&gt;as the article suggested&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&amp;lt;%@ Application Language=&lt;span class="st"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; %&amp;gt;

&amp;lt;script runat=&lt;span class="st"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;

  &lt;span class="kwd"&gt;Sub&lt;/span&gt; Application_AuthenticateRequest(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)
    
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; userInformation &lt;span class="kwd"&gt;As String&lt;/span&gt; = [&lt;span class="kwd"&gt;String&lt;/span&gt;].Empty

    &lt;span class="kwd"&gt;If&lt;/span&gt; HttpContext.Current.User IsNot &lt;span class="kwd"&gt;Nothing AndAlso&lt;/span&gt; _
       HttpContext.Current.User.Identity.IsAuthenticated &lt;span class="kwd"&gt;AndAlso&lt;/span&gt; _
       &lt;span class="kwd"&gt;TypeOf&lt;/span&gt; HttpContext.Current.User.Identity &lt;span class="kwd"&gt;Is&lt;/span&gt; FormsIdentity &lt;span class="kwd"&gt;Then&lt;/span&gt;
      &lt;span class="cmt"&gt;&amp;#39;If Request.IsAuthenticated Then&lt;/span&gt;
      
      &lt;span class="kwd"&gt;Dim&lt;/span&gt; sCookieName &lt;span class="kwd"&gt;As String&lt;/span&gt; = FormsAuthentication.FormsCookieName
      &lt;span class="kwd"&gt;If&lt;/span&gt; Request.Cookies(sCookieName) IsNot &lt;span class="kwd"&gt;Nothing AndAlso&lt;/span&gt; Request.Cookies(sCookieName).Value &amp;lt;&amp;gt; &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwd"&gt;Then
        Dim&lt;/span&gt; fat &lt;span class="kwd"&gt;As&lt;/span&gt; FormsAuthenticationTicket = FormsAuthentication.Decrypt(Context.Request.Cookies(sCookieName).Value)
        userInformation = fat.UserData

        &lt;span class="kwd"&gt;Dim&lt;/span&gt; info &lt;span class="kwd"&gt;As String&lt;/span&gt;() = userInformation.Split(&lt;span class="kwd"&gt;New Char&lt;/span&gt;() {&lt;span class="st"&gt;&amp;quot;;&amp;quot;&lt;/span&gt;c})
        &lt;span class="kwd"&gt;If&lt;/span&gt; info.GetUpperBound(0) &amp;lt;&amp;gt; 6 &lt;span class="kwd"&gt;Then
          If&lt;/span&gt; Context.Session IsNot &lt;span class="kwd"&gt;Nothing Then&lt;/span&gt; Context.Session.Abandon()
          FormsAuthentication.SignOut()

          &lt;span class="kwd"&gt;Dim&lt;/span&gt; objCookie &lt;span class="kwd"&gt;As New&lt;/span&gt; System.Web.HttpCookie(FormsAuthentication.FormsCookieName, &lt;span class="kwd"&gt;String&lt;/span&gt;.Empty)
          &lt;span class="kwd"&gt;With&lt;/span&gt; objCookie
            .Path = &lt;span class="st"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;
            .Expires = &lt;span class="kwd"&gt;Date&lt;/span&gt;.Now.AddDays(-1)
          &lt;span class="kwd"&gt;End With&lt;/span&gt;
          Response.Cookies.Add(objCookie)
          objCookie = &lt;span class="kwd"&gt;Nothing&lt;/span&gt;

          Context.User = &lt;span class="kwd"&gt;Nothing
          Return
        End If&lt;/span&gt;

        &lt;span class="cmt"&gt;&amp;#39; this could be a new &amp;quot;illegal&amp;quot; logon, so we need to check
        &amp;#39; if these credentials are already in the Cache&lt;/span&gt;
        &lt;span class="kwd"&gt;Dim&lt;/span&gt; sCacheUser &lt;span class="kwd"&gt;As String&lt;/span&gt; = Convert.ToString(HttpContext.Current.Cache(helperclasses.CustomPrincipal.GetUser.Email))
        &lt;span class="kwd"&gt;If&lt;/span&gt; sCacheUser IsNot &lt;span class="kwd"&gt;Nothing AndAlso&lt;/span&gt; sCacheUser &amp;lt;&amp;gt; &lt;span class="kwd"&gt;String&lt;/span&gt;.Empty &lt;span class="kwd"&gt;Then&lt;/span&gt;
          &lt;span class="cmt"&gt;&amp;#39; cache item exists, so too bad...&lt;/span&gt;
          &lt;span class="kwd"&gt;If&lt;/span&gt; Context.Session IsNot &lt;span class="kwd"&gt;Nothing Then&lt;/span&gt; Context.Session.Abandon()
          FormsAuthentication.SignOut()

          &lt;span class="kwd"&gt;Dim&lt;/span&gt; objCookie &lt;span class="kwd"&gt;As New&lt;/span&gt; System.Web.HttpCookie(FormsAuthentication.FormsCookieName, &lt;span class="kwd"&gt;String&lt;/span&gt;.Empty)
          &lt;span class="kwd"&gt;With&lt;/span&gt; objCookie
            .Path = &lt;span class="st"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;
            .Expires = &lt;span class="kwd"&gt;Date&lt;/span&gt;.Now.AddDays(-1)
          &lt;span class="kwd"&gt;End With&lt;/span&gt;
          Response.Cookies.Add(objCookie)
          objCookie = &lt;span class="kwd"&gt;Nothing&lt;/span&gt;

          Context.User = &lt;span class="kwd"&gt;Nothing
          Return
        End If&lt;/span&gt;

        HttpContext.Current.User = &lt;span class="kwd"&gt;New&lt;/span&gt; helperclasses.CustomPrincipal(User.Identity, Convert.ToInt32(info(0).ToString()), info(1).ToString(), info(2).ToString(), Convert.ToInt32(info(3).ToString()), info(4).ToString(), Convert.ToInt32(info(5).ToString()), info(6).ToString())
      &lt;span class="kwd"&gt;End If
    End If

  End Sub
  
  Sub&lt;/span&gt; Application_PreRequestHandlerExecute(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)

    &lt;span class="cmt"&gt;&amp;#39; e.g. this is after an initial logon&lt;/span&gt;
    &lt;span class="kwd"&gt;If&lt;/span&gt; Session(&lt;span class="st"&gt;&amp;quot;userkey&amp;quot;&lt;/span&gt;) IsNot &lt;span class="kwd"&gt;Nothing Then
      Dim&lt;/span&gt; sKey &lt;span class="kwd"&gt;As String&lt;/span&gt; = Session(&lt;span class="st"&gt;&amp;quot;userkey&amp;quot;&lt;/span&gt;).ToString
      &lt;span class="cmt"&gt;&amp;#39; Accessing the Cache Item extends the Sliding Expiration automatically&lt;/span&gt;
      &lt;span class="kwd"&gt;Dim&lt;/span&gt; sUser &lt;span class="kwd"&gt;As String&lt;/span&gt; = HttpContext.Current.Cache(sKey).ToString
    &lt;span class="kwd"&gt;End If

  End Sub
  
  Sub&lt;/span&gt; Application_Start(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)

    &lt;span class="cmt"&gt;&amp;#39; Code that runs on application startup

    &amp;#39; Set our user count to 0 when we start the server &lt;/span&gt;
    Application(&lt;span class="st"&gt;&amp;quot;ActiveUsers&amp;quot;&lt;/span&gt;) = 0
    
  &lt;span class="kwd"&gt;End Sub
  
  Sub&lt;/span&gt; Application_End(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)

    &lt;span class="cmt"&gt;&amp;#39; Code that runs on application shutdown&lt;/span&gt;

  &lt;span class="kwd"&gt;End Sub
      
  Sub&lt;/span&gt; Application_Error(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)

    &lt;span class="cmt"&gt;&amp;#39; Code that runs when an unhandled error occurs&lt;/span&gt;
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; ex &lt;span class="kwd"&gt;As&lt;/span&gt; Exception = Server.GetLastError()
    &lt;span class="kwd"&gt;Dim&lt;/span&gt; sErrorFullMessage &lt;span class="kwd"&gt;As String&lt;/span&gt; = &lt;span class="kwd"&gt;String&lt;/span&gt;.Empty
    &lt;span class="kwd"&gt;If&lt;/span&gt; HttpContext.Current.IsDebuggingEnabled &lt;span class="kwd"&gt;Then&lt;/span&gt;
      sErrorFullMessage = GetHTMLError(ex)
    &lt;span class="kwd"&gt;Else&lt;/span&gt;
      sErrorFullMessage = &lt;span class="st"&gt;&amp;quot;ERROR: &amp;quot;&lt;/span&gt; &amp;amp; ex.ToString &amp;amp; ControlChars.NewLine &amp;amp; ControlChars.NewLine &amp;amp; _
                          &lt;span class="st"&gt;&amp;quot;MESSAGE: &amp;quot;&lt;/span&gt; &amp;amp; ex.Message &amp;amp; ControlChars.NewLine &amp;amp; ControlChars.NewLine &amp;amp; _
                          &lt;span class="st"&gt;&amp;quot;SOURCE: &amp;quot;&lt;/span&gt; &amp;amp; ex.Source &amp;amp; ControlChars.NewLine &amp;amp; ControlChars.NewLine &amp;amp; _
                          &lt;span class="st"&gt;&amp;quot;FORM: &amp;quot;&lt;/span&gt; &amp;amp; Request.Form.ToString() &amp;amp; ControlChars.NewLine &amp;amp; ControlChars.NewLine &amp;amp; _
                          &lt;span class="st"&gt;&amp;quot;QUERYSTRING: &amp;quot;&lt;/span&gt; &amp;amp; Request.QueryString.ToString() &amp;amp; ControlChars.NewLine &amp;amp; ControlChars.NewLine &amp;amp; _
                          &lt;span class="st"&gt;&amp;quot;TARGETSITE: &amp;quot;&lt;/span&gt; &amp;amp; ex.TargetSite.ToString &amp;amp; ControlChars.NewLine &amp;amp; ControlChars.NewLine &amp;amp; _
                          &lt;span class="st"&gt;&amp;quot;STACKTRACE: &amp;quot;&lt;/span&gt; &amp;amp; ex.StackTrace
    &lt;span class="kwd"&gt;End If&lt;/span&gt;
    Server.ClearError()
    
    &lt;span class="kwd"&gt;If&lt;/span&gt; HttpContext.Current.IsDebuggingEnabled &lt;span class="kwd"&gt;Then&lt;/span&gt;
      &lt;span class="cmt"&gt;&amp;#39;&amp;#39;If (Context IsNot Nothing) And (Context.User.IsInRole(&amp;quot;Administrators&amp;quot;)) Then&lt;/span&gt;

      Response.Clear()
      Response.Write(sErrorFullMessage)
    &lt;span class="kwd"&gt;Else&lt;/span&gt;
      helperclasses.GlobalFunctions.CreateEventLog(sErrorFullMessage, Diagnostics.EventLogEntryType.&lt;span class="kwd"&gt;Error&lt;/span&gt;)
      SendHtmlError(ex)
      Response.Redirect(helperclasses.GlobalDeclarations.BasePath &amp;amp; &lt;span class="st"&gt;&amp;quot;/errorpage.aspx&amp;quot;&lt;/span&gt;)
    &lt;span class="kwd"&gt;End If

  End Sub

  Sub&lt;/span&gt; Session_Start(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)

    &lt;span class="cmt"&gt;&amp;#39; Code that runs when a new session is started&lt;/span&gt;
    &lt;span class="kwd"&gt;If&lt;/span&gt; HttpContext.Current.IsDebuggingEnabled &lt;span class="kwd"&gt;Then&lt;/span&gt;
      &lt;span class="cmt"&gt;&amp;#39;If Context IsNot Nothing AndAlso (Context.User.IsInRole(&amp;quot;BUILTIN\Administrators&amp;quot;) OrElse Context.User.IsInRole(&amp;quot;Debugger Users&amp;quot;)) Then
      &amp;#39;helperclasses.GlobalFunctions.MessageMake(&amp;quot;Session 500&amp;quot;)&lt;/span&gt;
      Session.Timeout = 500
    &lt;span class="kwd"&gt;End If&lt;/span&gt;
      
    &lt;span class="cmt"&gt;&amp;#39;Session.Timeout = 10&lt;/span&gt;
    Session(&lt;span class="st"&gt;&amp;quot;Start&amp;quot;&lt;/span&gt;) = Now
    
    &lt;span class="kwd"&gt;If&lt;/span&gt; HttpContext.Current.User IsNot &lt;span class="kwd"&gt;Nothing AndAlso&lt;/span&gt; _
       HttpContext.Current.User.Identity.IsAuthenticated &lt;span class="kwd"&gt;AndAlso&lt;/span&gt; _
       &lt;span class="kwd"&gt;TypeOf&lt;/span&gt; HttpContext.Current.User.Identity &lt;span class="kwd"&gt;Is&lt;/span&gt; FormsIdentity &lt;span class="kwd"&gt;Then&lt;/span&gt;
      &lt;span class="cmt"&gt;&amp;#39;If Request.IsAuthenticated Then
      
      &amp;#39; No Cache item, so sesion is either expired or user is new sign-on
      &amp;#39; Set the cache item and Session hit-test for this user---&lt;/span&gt;
      &lt;span class="kwd"&gt;Dim&lt;/span&gt; SessTimeOut &lt;span class="kwd"&gt;As&lt;/span&gt; TimeSpan = &lt;span class="kwd"&gt;New&lt;/span&gt; TimeSpan(0, 0, helperclasses.GlobalDeclarations.LoginTimeout, 0, 0)
      HttpContext.Current.Cache.Insert(helperclasses.CustomPrincipal.GetUser.Email, helperclasses.CustomPrincipal.GetUser.Email, &lt;span class="kwd"&gt;Nothing&lt;/span&gt;, DateTime.MaxValue, SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable, &lt;span class="kwd"&gt;Nothing&lt;/span&gt;)
      Session(&lt;span class="st"&gt;&amp;quot;userkey&amp;quot;&lt;/span&gt;) = helperclasses.CustomPrincipal.GetUser.Email

      &lt;span class="kwd"&gt;Dim&lt;/span&gt; sCookieName &lt;span class="kwd"&gt;As String&lt;/span&gt; = FormsAuthentication.FormsCookieName
      &lt;span class="kwd"&gt;If&lt;/span&gt; Request.Cookies(sCookieName) IsNot &lt;span class="kwd"&gt;Nothing AndAlso&lt;/span&gt; Request.Cookies(sCookieName).Value &amp;lt;&amp;gt; &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwd"&gt;AndAlso&lt;/span&gt; _
        (Session(&lt;span class="st"&gt;&amp;quot;LastLogin&amp;quot;&lt;/span&gt;) &lt;span class="kwd"&gt;Is Nothing OrElse&lt;/span&gt; Context.Session(&lt;span class="st"&gt;&amp;quot;LastLogin&amp;quot;&lt;/span&gt;).ToString = &lt;span class="kwd"&gt;String&lt;/span&gt;.Empty) &lt;span class="kwd"&gt;Then
        Dim&lt;/span&gt; cust &lt;span class="kwd"&gt;As New&lt;/span&gt; helperclasses.Customer
        cust.UpdateLastLogin(helperclasses.CustomPrincipal.GetUser.Email)
        Session(&lt;span class="st"&gt;&amp;quot;LastLogin&amp;quot;&lt;/span&gt;) = &lt;span class="kwd"&gt;Date&lt;/span&gt;.Now
      &lt;span class="kwd"&gt;End If
    End If&lt;/span&gt;
    
    Application.Lock()
    Application(&lt;span class="st"&gt;&amp;quot;ActiveUsers&amp;quot;&lt;/span&gt;) = &lt;span class="kwd"&gt;CInt&lt;/span&gt;(Application(&lt;span class="st"&gt;&amp;quot;ActiveUsers&amp;quot;&lt;/span&gt;)) + 1
    Application.UnLock()
    
    &lt;span class="cmt"&gt;&amp;#39;helperclasses.InstanceMonitor.DbManagerInstances = 0&lt;/span&gt;

  &lt;span class="kwd"&gt;End Sub

  Sub&lt;/span&gt; Session_End(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)

    &lt;span class="cmt"&gt;&amp;#39; Code that runs when a session ends. 
    &amp;#39; Note: The Session_End event is raised only when the sessionstate mode
    &amp;#39; is set to InProc in the Web.config file. If session mode is set to StateServer 
    &amp;#39; or SQLServer, the event is not raised.&lt;/span&gt;
    Application.Lock()
    Application(&lt;span class="st"&gt;&amp;quot;ActiveUsers&amp;quot;&lt;/span&gt;) = &lt;span class="kwd"&gt;CInt&lt;/span&gt;(Application(&lt;span class="st"&gt;&amp;quot;ActiveUsers&amp;quot;&lt;/span&gt;)) - 1
    Application.UnLock()
    
  &lt;span class="kwd"&gt;End Sub&lt;/span&gt;
&amp;lt;/script&amp;gt;&lt;/pre&gt;&amp;nbsp;&amp;nbsp;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1810128.aspx</link><pubDate>Wed, 18 Jul 2007 13:16:35 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1810128</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1810128.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1810128</wfw:commentRss><description>&lt;p&gt;I thought you were using c#. The above code is in global.asax, can i see complete global.asax please..It looks ok. Have you set inproc session. Also look at this one here...&amp;nbsp; &lt;a href="http://www.eggheadcafe.com/articles/20030416.asp"&gt;http://www.eggheadcafe.com/articles/20030416.asp&lt;/a&gt;. Perhaps you will need to put your all global.asax.&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1809959.aspx</link><pubDate>Wed, 18 Jul 2007 12:08:58 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1809959</guid><dc:creator>patrickdrd</dc:creator><author>patrickdrd</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1809959.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1809959</wfw:commentRss><description>&amp;nbsp;&lt;pre class="coloredcode"&gt;  &lt;span class="kwd"&gt;Sub&lt;/span&gt; Application_PreRequestHandlerExecute(&lt;span class="kwd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwd"&gt;As Object&lt;/span&gt;, &lt;span class="kwd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwd"&gt;As&lt;/span&gt; EventArgs)

    &lt;span class="cmt"&gt;&amp;#39; e.g. this is after an initial logon&lt;/span&gt;
    &lt;span class="kwd"&gt;If&lt;/span&gt; Session(&lt;span class="st"&gt;&amp;quot;userkey&amp;quot;&lt;/span&gt;) IsNot &lt;span class="kwd"&gt;Nothing Then
      Dim&lt;/span&gt; sKey &lt;span class="kwd"&gt;As String&lt;/span&gt; = Session(&lt;span class="st"&gt;&amp;quot;userkey&amp;quot;&lt;/span&gt;).ToString
      &lt;span class="cmt"&gt;&amp;#39; Accessing the Cache Item extends the Sliding Expiration automatically&lt;/span&gt;
      &lt;span class="kwd"&gt;Dim&lt;/span&gt; sUser &lt;span class="kwd"&gt;As String&lt;/span&gt; = HttpContext.Current.Cache(sKey).ToString
    &lt;span class="kwd"&gt;End If

  End Sub&lt;/span&gt;
  
&lt;/pre&gt;&amp;nbsp;&lt;br /&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1809801.aspx</link><pubDate>Wed, 18 Jul 2007 10:26:18 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1809801</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1809801.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1809801</wfw:commentRss><description>&lt;p&gt;sorry it should be alright, could i see your code again please&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1809777.aspx</link><pubDate>Wed, 18 Jul 2007 10:08:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1809777</guid><dc:creator>patrickdrd</dc:creator><author>patrickdrd</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1809777.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1809777</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;that&amp;#39;s what the article suggested, in order to refresh the user in cache,&lt;/p&gt;&lt;p&gt;can anyone figure out a possible workaround?&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1809751.aspx</link><pubDate>Wed, 18 Jul 2007 09:51:39 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1809751</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1809751.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1809751</wfw:commentRss><description>&lt;p&gt;Edit, sorry could I see your code...please&lt;/p&gt;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1809742.aspx</link><pubDate>Wed, 18 Jul 2007 09:46:42 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1809742</guid><dc:creator>patrickdrd</dc:creator><author>patrickdrd</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1809742.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1809742</wfw:commentRss><description>&lt;p&gt;session object problems once more...&lt;/p&gt;&lt;pre class="coloredcode"&gt;System.Web.HttpException was unhandled by user code
  ErrorCode=-2147467259
  Message=&lt;span class="st"&gt;&amp;quot;Session state is not available in this context.&amp;quot;&lt;/span&gt;
  Source=&lt;span class="st"&gt;&amp;quot;System.Web&amp;quot;&lt;/span&gt;
  StackTrace:
       at System.Web.HttpApplication.get_Session()
       at ASP.global_asax.Application_PreRequestHandlerExecute(&lt;span class="kwd"&gt;Object&lt;/span&gt; sender, EventArgs e) in D:\DEV\global.asax:line 65
       at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, &lt;span class="kwd"&gt;Boolean&lt;/span&gt;&amp;amp; completedSynchronously)
&lt;/pre&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;</description></item><item><title>Re: lastlogindate and FormsAuthentication (cookie) - how?</title><link>http://forums.asp.net/thread/1809679.aspx</link><pubDate>Wed, 18 Jul 2007 09:08:15 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1809679</guid><dc:creator>naturehermit</dc:creator><author>naturehermit</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1809679.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=25&amp;PostID=1809679</wfw:commentRss><description>&lt;p&gt;Because you said you do not want many db writes... and cache recycles/overwritten if the thread limits is reached or memory limit hits.&lt;/p&gt;</description></item></channel></rss>