2010-02-10 2 views
0

Membership 사용자 클래스의 LastLoginDate를 서버 시간 대신 UTC 시간으로 설정하려면 어떻게합니까?ASP.NET MembershipUser의 LastLoginDate를 어떻게 설정합니까?

LastLoginDate가 설정 가능한 속성이지만 다음 코드는 작동하지 않습니다.

Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate 
    Dim user As MembershipUser = Membership.GetUser(Login1.UserName) 
    If user IsNot Nothing Then 
     If Membership.ValidateUser(Login1.UserName, Login1.Password) Then 
      user.LastLoginDate = DateTime.UtcNow() 
      e.Authenticated = True 
     End If 
    End If 
End Sub 

는 또한 Login1_LoggedInLogin1_LoggingIn 이벤트와 행운에서 할 노력했다.

답변

2

을 저장 UpdateUser로 전화를 걸 필요가있다. MSDN 문서에서

LastLoginDate에 :

You can also modify the last login date by setting the LastLoginDate property of a MembershipUser and passing the modified MembershipUser object to the UpdateUser method.

코드에서 :

If Membership.ValidateUser(Login1.UserName, Login1.Password) Then 
    user.LastLoginDate = DateTime.UtcNow() 
    MembershipUser.UpdateUser(user) 
    e.Authenticated = True 
End If 
+1

없음 운 again..I가 UpdateUser를 추가하지 않고 노력하는 모든 3 이벤트 (인증, loggedin 및 로그인) ... 작동하지 않았다 ... 나는 무엇인가 내려다보고 있는가? –

+0

필자는이 earler에 대해 언급 했어야했으나 적절하지 않다고 생각했습니다. Microsoft Access 멤버십 공급자를 사용하고 있습니다. 이 공급자 코드에는 버그가있는 것 같습니다. 줄 -> user.LastLoginDate = DateTime.UtcNow()가 작동하지 않습니다! 그래서 UTC 시간 만 저장하도록 소스 코드를 변경했습니다. –

관련 문제