foreach (string oName in oValues)
{
if (string.IsNullOrEmpty(Request.Form[oName]))
{
oCount += 1;
}
}
if (oCount == 0)
{
_clientID = Request.Form["ClientID"];
_password = Request.Form["Password"];
_pracType = Request.Form["PracType"];
_encrypt = Request.Form["Encrypt"];
if (GetCRC(_clientID) == _password)
{
if (_clientID != null)
{
var verify = VerifyClientInformation(int.Parse(_clientID));
var gsa = new GSDataLayer.Authentication.Auth();
gsa.CreateAuthEntry(_clientID, _password, _pracType, _encrypt, verify.CanUpdate);
_aMgr.GotoHomePage();
}
else
{
error.Text = "This conditional failed.";
}
}
else
{
_aMgr.GotoErrorPage("nocrc");
}
}
else
{
_aMgr.GotoErrorPage("noform");
}
GotoErrorPage
方法:
public void GotoErrorPage(string errorcode)
{
if (HttpContext.Current.Request.UserHostAddress != "127.0.0.1") // for testing only
{
var instance = new Control();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Redirect(instance.ResolveClientUrl(
string.Format("~/ErrorPage.aspx?e={0}", errorcode)));
HttpContext.Current.Response.End();
}
}
如果oCount
为0,则重定向正常,但如果是<> 0重定向不会发生。关于为什么会出现这种情况的任何想法?
感谢
嗯,我觉得很傻...... UserHostAddress
中GotoErrorPage()
的条件是罪魁祸首。我忘记了这是我最初测试中的残余,因为我不希望发生任何重定向,只输出文本(错误,结果等)。删除该条件后,重定向发生就好了。
program003
)代替localhost
通过Intranet访问它。我想在“问题”出现之前,我在测试时使用的是计算机名称而不是localhost
。无论如何,当我使用localhost
时,IP为127.0.0.1
,但当我使用program003
时,我会获得此IPv6地址:
fe80::b1d7:b18b:d10f:f526%8
如果我没弄错的话,IPv6的环回地址应该是::1
?很奇怪。
答案 0 :(得分:1)
如果GetCRC(_clientID) == _password
为真并且_clientID != null
为假,则查看逻辑,那么您将完全不采取任何操作,因此您至少有一个可能的解释。
我是否也借此机会说出掉落的牙齿和匈牙利人多少让我心碎?这对我来说很难读懂。
答案 1 :(得分:0)
GotoErrorPage()方法中定义的“errorcode”在哪里?它接受参数吗?
答案 2 :(得分:0)
请参阅我对问题/解决方案的编辑。