Asp.net mvc 使用Active Directory身份验证时AccountController未重定向到正确的页面

Asp.net mvc 使用Active Directory身份验证时AccountController未重定向到正确的页面,asp.net-mvc,active-directory,ldap,Asp.net Mvc,Active Directory,Ldap,我正在修改AccountController,以使用一个单独的类来查询Active Directory中的信息,并将该信息存储在登录模型中。在我的帐户控制器中,我有: try{ LDAPAuth.LDAPQuery(model); return RedirectToAction("Homepage", "HomePage"); } catch (Exception e) { throw new Exception(e.message); } 我把它放在一个try/cat

我正在修改AccountController,以使用一个单独的类来查询Active Directory中的信息,并将该信息存储在登录模型中。在我的帐户控制器中,我有:

try{
    LDAPAuth.LDAPQuery(model);
    return RedirectToAction("Homepage", "HomePage");
}
catch (Exception e)
{
    throw new Exception(e.message);
}
我把它放在一个try/catch中,因为如果DirectorySearcher没有找到用户,它会告诉他们用户名或passwrod是错误的,我只是试图在视图上传递异常。所发生的事情是,当它进入try块时,模型被设置得非常好,具有我想要的属性,但是重定向将我带到

http://localhost:7606/Account/Login?ReturnUrl=%2fHomePage%2fHomepage
LDAPAuth类是根据这个解决方案实现的,我也在try/catch中围绕它来捕获我试图传递给视图的无效用户

 http://stackoverflow.com/questions/1295157/how-do-i-query-activedirectory-using-ldap-with-a-username-not-a-cn
我不确定是什么问题,调试也没有帮助


我希望有人能帮忙!谢谢

在重定向到操作之前,请发出FormsAuthentication.SetAuthCookie。这将覆盖返回URL的默认行为:

还值得注意的是,SetAuthCookie中的bool(字符串用户名,boolCreatePersistantCookie)可以用来记住用户。对于这个例子,我将其设置为false

try{
  LDAPAuth.LDAPQuery(model);
  FormsAuthentication.SetAuthCookie(model.UserName, false);
  return RedirectToAction("Homepage", "HomePage");
}