我正在处理一个小网站上的各种错误修复,有一件事让我很困惑。
是否有一个简单的解释,为什么有些网页会重定向到登录页面而不是实际目的地... 但仅限于使用Chrome?
示例:此页面应检查我们的邮件列表中的输入,并添加详细信息或返回一条消息,表明它们已在列表中。它在IE浏览器中运行良好(图)但是当我在Chrome中尝试它时,它会将我重定向到帐户登录页面。
HTML:
<%@ Page Language="VB" MasterPageFile="~/Standard-no-menu.master" AutoEventWireup="false" CodeFile="join-email.aspx.vb" Inherits="JoinEmail" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<style type="text/css"><!-- @import url("/update-details.css"); --></style>
<script type="text/javascript" language="javascript" src="js/JScript.js"> </script>
<script language="javascript" type="text/javascript">
function validateForm()
{
if (aForgotPwd.style.display != null && aForgotPwd.style.display.toString() != "none") {
var emailEle = document.getElementById("<%= txtEmail.ClientID %>");
emailEle.focus();
return false;
}
if(document.getElementById('<%= txtEmail.ClientID %>').value=="")
{
alert("Please enter a value in the field \"Email\".");
document.getElementById('<%= txtEmail.ClientID %>').focus();
return (false);
}
validemail=0;
var checkStr = document.getElementById('<%= txtEmail.ClientID %>').value;
for (i = 0; i < checkStr.length; i++)
{
if(checkStr.charAt(i)=="@")
validemail |= 1;
if(checkStr.charAt(i)==".")
validemail |= 2;
}
if(validemail != 3)
{
alert("Please enter a valid email address.");
document.getElementById('<%= txtEmail.ClientID %>').focus();
return (false);
}
if(document.getElementById('<%= txtFirstName.ClientID %>').value=="")
{
alert("Please enter a value in the field \"First Name\".");
document.getElementById('<%= txtFirstName.ClientID %>').focus();
return (false);
}
if(document.getElementById('<%= txtLastName.ClientID %>').value=="")
{
alert("Please enter a value in the field \"Last Name\".");
document.getElementById('<%= txtLastName.ClientID %>').focus();
return (false);
}
}
</script>
<h1>Join Global PC Mailing List
</h1>
<div class="update-message"><asp:Label ID="lblMessage" runat="Server"></asp:Label></div>
<asp:Panel ID="pnlCreateAccount" runat="server">
<div class="update-row">
<div class="update-mandatory">*</div>
<div class="update-label">Email Address:</div>
<div class="update-field"><asp:TextBox cssClass="textbox" ID="txtEmail" MaxLength="255" width="350" runat="server"></asp:TextBox><b><a id="aForgotPwd" href="/forgotten-password.aspx" style="display:none"> Forgot password?</a></b></div>
</div>
<div class="update-row">
<div class="update-mandatory"> </div>
<div class="update-label"> </div>
<div class="update-field">We will never give your email address to anyone. Read our <a runat="server" href="~/privacy.aspx">privacy policy</a></div>
</div>
<div class="update-row">
<div class="update-mandatory"> </div>
<div class="update-label">Company Name:</div>
<div class="update-field"><asp:TextBox cssClass="textbox" name="txtAccountName" ID="txtAccountName" MaxLength="40" width="350" runat="server"></asp:TextBox>
</div>
</div>
<div class="update-row">
<div class="update-mandatory">*</div>
<div class="update-label">First Name:</div>
<div class="update-field"><asp:TextBox cssClass="textbox" name="txtFirstName" ID="txtFirstName" MaxLength="255" width="350" runat="server"></asp:TextBox></div>
</div>
<div class="update-row">
<div class="update-mandatory">*</div>
<div class="update-label">Last Name:</div>
<div class="update-field"><asp:TextBox cssClass="textbox" name="txtLastName" ID="txtLastName" MaxLength="255" width="350" runat="server"></asp:TextBox></div>
</div>
<h1>Choose Your Email Subscriptions</h1>
<div class="update-row">
<div style="float:left">
<div class="update-mandatory"> </div>
<div class="update-label">Subscribe to General Newsletters:</div>
<div class="update-checkbox"><asp:CheckBox ID="chkGenernalNewsletters" runat="server"></asp:CheckBox></div>
</div>
</div>
<div class="update-row">
<div class="update-mandatory"> </div>
<div class="update-label"> </div>
<div class="update-field">
<div class="green-button">
<asp:LinkButton ID="btnRegister" OnClientClick="return validateForm();" AlternateText="Join Up" Text="Join Up" runat="server" />
</div>
</div>
</div>
</asp:Panel>
</asp:Content>
VB.NET
Imports DataAccessLayer
Imports System.Data
Imports System.Net
Imports System.Net.Mail
Imports com.verticalresponse.api
Partial Class JoinEmail
Inherits System.Web.UI.Page
Dim c As GPCUser
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Master.Page.Title += " | Register"
If TypeOf Session("Customer") Is GPCUser Then
c = CType(Session("Customer"), GPCUser)
'Response.Redirect("update-details.aspx")
Else
c = New GPCUser
End If
If c.AccountNo = 0 Or c.AccountNo = CInt(System.Configuration.ConfigurationManager.AppSettings("WebsiteAccount")) Then
Else
Response.Redirect("update-details.aspx")
Exit Sub
End If
If Not Page.IsPostBack Then
Dim dt As DataTable = Nothing
dt = SqlHelper.ExecuteDataset(System.Configuration.ConfigurationManager.AppSettings("dbConn"), "x_ww_spGetCustomer", Request("custID")).Tables(0)
If Not dt Is Nothing Then
If dt.Rows.Count > 0 Then
Dim dr As DataRow = dt.Rows(0)
txtAccountName.Text = dr("AccountName")
txtFirstName.Text = dr("FirstName")
txtLastName.Text = dr("LastName")
txtEmail.Text = dr("Email")
If Request("custID") > 0 Then
Dim subscriptions As ContactSubscriptions = New ContactSubscriptions(Request("custID"))
' chkComputerPromotions.Checked = subscriptions.IsComputerPromotions
'chkElectronicPromotions.Checked = subscriptions.IsElectronicPromotions
chkGenernalNewsletters.Checked = subscriptions.IsGenernalNewsletters
End If
End If
End If
End If
End Sub
Protected Sub btnRegister_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnRegister.Click
' c.CreateCustomerDetails(txtAccountName.Text, txtFirstName.Text, txtLastName.Text, txtEmail.Text, txtAddress.Text, txtSuburb.Text, txtCityTown.Text, txtPostcode.Text, txtPhone.Text, txtMobile.Text, lstCountry.SelectedValue)
' c.GeneratedPassword = txtPassword.Text
' GPCUser.AddUpdateCustomer(c)
' ' Save the subscription details
'
'If Request("custID") > 0 and Request("AccNO") > 0 Then
Dim subscriptions As ContactSubscriptions = New ContactSubscriptions(Request("custID"))
'subscriptions.IsComputerPromotions = chkComputerPromotions.Checked
'subscriptions.IsElectronicPromotions = chkElectronicPromotions.Checked
subscriptions.IsGenernalNewsletters = chkGenernalNewsletters.Checked
subscriptions.Save()
'End IF
' Session("Customer") = c
'SendUpdateAccountEmailMessage(c.EmailCount)
'ClientScript.RegisterClientScriptBlock(Me.GetType(), "Thanks", "alert('Your Website PC account has been created. ');", False)
If chkGenernalNewsletters.Checked = True Then
Dim listID As Integer = 284662333
Dim isMember As Boolean = False
Dim newSession As New loginArgs()
newSession.username = "Not Relevant"
' Your VerticalResponse username
newSession.password = "Not Relevant"
'Your VerticalResponse password
' objLA.impersonate_user = "subaccount@emailaddress.com"; // If accessing or acting as a subaccount, uncomment this and replace it with the applicable email address.
newSession.session_duration_minutes = "120"
Dim [date] As DateTime = DateTime.Now
' This is generated by creating a Service Reference that points to the VerticalResponse WSDL.
Dim VRUser As New VRAPI()
' Let's try to log in. The login call will return a session ID, which we will use in all subsequent calls.
Dim sessionId As String = Nothing
Try
sessionId = VRUser.login(newSession)
Catch ex As System.Exception
lblMessage.Text = ex.ToString()
End Try
Dim getMember As New getListMemberByEmailAddressArgs()
getMember.session_id = sessionId
getMember.list_id = listID
getMember.email_address = txtEmail.Text
Try
VRUser.getListMemberByEmailAddress(getMember)
isMember = True
Catch ex As System.Exception
isMember = False
End Try
If (isMember = False) Then
Dim nMember As New ListMember()
nMember.list_id = listID
Dim memberData As NVPair() = New NVPair(2) {}
memberData(0) = New NVPair()
memberData(0).name = "email_address"
memberData(0).value = txtEmail.Text
memberData(1) = New NVPair()
memberData(1).name = "first_name"
memberData(1).value = txtFirstName.Text
memberData(2) = New NVPair()
memberData(2).name = "last_name"
memberData(2).value = txtLastName.Text
nMember.member_data = memberData
Dim objAL As New addListMemberArgs()
objAL.list_member = nMember
objAL.session_id = sessionId
Try
VRUser.addListMember(objAL)
Catch ex As System.Exception
txtEmail.Text = ex.ToString()
End Try
Else
pnlCreateAccount.Visible = False
lblMessage.Text = "You are already on our mailing list."
Exit Sub
End If
End If
pnlCreateAccount.Visible = False
lblMessage.Text = "you have successfully subscribed to Website PC email database."
End Sub
<System.Web.Services.WebMethod()> _
Public Shared Function ValidateEmail(email As String) As String
Dim wbClient As WebClient = New WebClient()
Dim strUrl As String = ConfigurationManager.AppSettings("WebsiteURLFull") + "/ajax/check_email_address.aspx?Email=" + email
Dim reqHTML As Byte()
reqHTML = wbClient.DownloadData(strUrl)
Dim objUTF8 As UTF8Encoding = New UTF8Encoding()
Dim output As String = objUTF8.GetString(reqHTML)
If String.IsNullOrEmpty(output) Then Return String.Empty
Return output
End Function
Private Sub SendMessage(fromEmail As String, fromEmailName As String, _
toEmails As String(), IsBodyHtml As Boolean, message As String, subject As String)
Dim mail As MailMessage = New MailMessage
mail.From = New MailAddress(fromEmail, fromEmailName)
For Each toEmail As String In toEmails
mail.To.Add(New MailAddress(toEmail))
Next
mail.Bcc.Add(fromEmail)
mail.IsBodyHtml = IsBodyHtml
mail.Subject = subject
mail.Body = message
Dim s As New SmtpClient(System.Configuration.ConfigurationManager.AppSettings("MailServer"))
s.Send(mail)
End Sub
Private Sub SendUpdateAccountEmailMessage(emailCount As Integer)
Dim subject As String = "ALERT : Website user subscribed to email database"
Dim message As String
message &= "Via page join-email" & vbCrLf & vbCrLf
message += "Account No: " & Request("custID") & vbCrLf
message += "Email : " & txtEmail.Text & vbCrLf
message += "Account Name : " & txtAccountName.Text & vbCrLf
message += "First Name : " & txtFirstName.Text & vbCrLf
message += "Last Name : " & txtLastName.Text & vbCrLf
message += "Email : " & txtEmail.Text & vbCrLf
message += "Subscribe to General Newsletters : " & chkGenernalNewsletters.Checked & vbCrLf
'message += "Subscribe to Computer Promotions: : " & chkComputerPromotions.Checked & vbCrLf
'message += "Subscribe to Electronic Promotions: : " & chkElectronicPromotions.Checked & vbCrLf
message &= vbCrLf & vbCrLf
message += "Regards" & vbCrLf & vbCrLf & "WebsitePC Admin Team"
SendMessage(ConfigurationManager.AppSettings("AccountDetailsUpdateEmail"), "Website PC", _
New String() {ConfigurationManager.AppSettings("AccountDetailsUpdateEmail")}, False, message, subject)
End Sub
End Class