我试图在登录时检查用户存储的IP地址,并与数据库中存储的IP地址进行比较。IP地址存储在默认aspnetdb的注释列中。
即使IP地址相同,用户每次连接时都会发送电子邮件。我只想在IP地址与存储地址不同的情况下发送电子邮件。
Protected Sub LoginUser_LoggingIn(sender As Object, e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles LoginUser.LoggingIn
Dim CurrentUser As MembershipUser = Membership.GetUser(LoginUser.UserName)
If (CurrentUser IsNot Nothing) Then
Dim IPAddress As String = HttpContext.Current.Request.UserHostAddress
Dim CurrentIP As String = CurrentUser.Comment
If (IPAddress IsNot CurrentIP) Then
Dim IP_Change As New Thread(
Sub()
Dim mailObject As New System.Net.Mail.MailMessage()
Dim emailCredentials As New System.Net.NetworkCredential("my@domain.com", "password")
mailObject.Subject = "User " & CurrentUser.ToString & " is connecting from a new IP Address ( " & IPAddress & " )"
mailObject.Body = "User is connecting from a new IP Address"
mailObject.To.Add("my@email.com")
mailObject.From = New System.Net.Mail.MailAddress("my@domain.com")
mailObject.IsBodyHtml = True
Dim SmtpMail As New System.Net.Mail.SmtpClient("my.domain.com")
SmtpMail.UseDefaultCredentials = False
SmtpMail.EnableSsl = False
SmtpMail.Credentials = emailCredentials
SmtpMail.Port = 587
SmtpMail.Send(mailObject)
End Sub
)
IP_Change.Start()
CurrentUser.Comment = IPAddress
Membership.UpdateUser(CurrentUser)
End If
End If
End Sub
发布于 2014-04-23 16:02:12
由于引用比较,您似乎遇到了与IsNot
行为不一致的情况。
将您的比较更改为这样的内容:If (IPAddress <> CurrentIP) Then
和它应该能工作。
https://stackoverflow.com/questions/23249493
复制相似问题