使用Active Directory身份验证时,AccountController不会重定向到正确的页面

时间:2013-08-01 14:04:18

标签: asp.net-mvc active-directory ldap

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

try{
    LDAPAuth.LDAPQuery(model);
    return RedirectToAction("Homepage", "HomePage");
}
catch (Exception e)
{
    throw new Exception(e.message);
}

我在try / catch中围绕它,因为如果DirectorySearcher没有找到用户,它会告诉他们用户名或密码错误,我只是试图在视图上传递异常。发生了什么事情,当它进入try块时,模型设置得很好,我想要的属性,但重定向将我带到

http://localhost:7606/Account/Login?ReturnUrl=%2fHomePage%2fHomepage

根据这个解决方案实现了LDAPAuth类,我还在try / catch中包含了这个以捕获我试图传递给View的无效用户

 http://stackoverflow.com/questions/1295157/how-do-i-query-activedirectory-using-ldap-with-a-username-not-a-cn

我不确定是什么问题,调试也没有帮助。

我希望有人可以提供帮助!感谢

1 个答案:

答案 0 :(得分:0)

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

还值得注意的是,SetAuthCookie中的bool(字符串用户名,bool createPersistantCookie)可用于记住用户。对于此示例,我将其设置为false。

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