0

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

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 中包围了它以捕获我试图传递给视图的无效用户

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

我不确定是什么问题,调试它也无济于事。

我希望有人能帮忙!谢谢

4

1 回答 1

0

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

还值得注意的是,SetAuthCookie(string username, bool createPersistantCookie) 中的 bool 可以用来记住用户。对于此示例,我已将其设置为 false。

try{
  LDAPAuth.LDAPQuery(model);
  FormsAuthentication.SetAuthCookie(model.UserName, false);
  return RedirectToAction("Homepage", "HomePage");
}
于 2013-08-02T04:39:28.133 回答