这是我的登录脚本。我有两个用户20002143和60000027第一个将验证和重定向为脚本,第二个验证并保持在同一页面上。我无法弄清楚为什么。我已插入断点遍布这个代码,并告诉我,它验证,但为什么是登录页面只是重装:为什么我的LDAP重定向脚本失败,只有一个用户?
public bool AuthenticateActiveDirectory(string Domain, string EmployeeID, string Password)
{
try
{
DirectoryEntry entry = new DirectoryEntry("LDAP://" + Domain, EmployeeID, Password);
object nativeObject = entry.NativeObject;
return true;
}
catch
{
return false;
}
}
protected void btnLogin_Click(object sender, EventArgs e)
{
string Domain = "domain.local";
string EmployeeID = txtUserID.Text;
string Password = txtPassword.Text;
string ADStatus = null;
if (AuthenticateActiveDirectory(Domain, EmployeeID, Password) == true)
{
ADStatus = "Success";
Session["SessionLoginStatus"] = ADStatus;
Response.Redirect("Intro.aspx?redir=Success&userid=" + EmployeeID);
}
else
{
ADStatus = "Failure";
Session["SessionLoginStatus"] = ADStatus;
lblADError.Visible = true;
lblADError.Text = "Please Check Your Password<br />";
}
}
下面是这另一部分。如果我使用的URL与第二EMPID错误登录
https://www.site.com/folder/intro.aspx?redir=Success&userid=60000027
会重定向我回到登录,但这是没有意义的,因为也登录Intro.aspx检查脚本这样。
//checking to see if user logged in
if ((ADStatus == "Success") && (UserID.Length >= 8))
{
}
if ((ADStatus == null) || (UserID.Length < 8))
{
ADStatus = "Failure";
Session["SessionLoginStatus"] = ADStatus;
Response.Redirect("https://www.site.com/folder/userlogin.aspx");
}
else if (ADStatus == "Failure")
{
ADStatus = "Failure";
Session["SessionLoginStatus"] = ADStatus;
Response.Redirect("https://www.site.com/folder/userlogin.aspx");
}
我在这里留下什么或做错了什么?
编辑
问题被抛出该用户返回到登录如果用户的ID不匹配的SQL表中定义的用户列表的第二页上所造成的逻辑。
尝试比较请求和他们在提琴手的反应,看看是否给出任何线索;或者如果您不知道如何使用Fiddler自行调试,至少可以与我们分享数据。 – 2014-10-16 21:07:30
我已经打开了提琴手,但它只能说打开和离开登录页面 – Skullomania 2014-10-16 21:26:10
时,您可以复制/粘贴这两个请求的原始响应时www.site.com隧道? – 2014-10-16 21:26:41