我想在 ASP.NET 网站上实现表单身份验证,该站点应在数据库上寻找用户以获取一些数据,然后针对 LDAP(Active Directory)进行身份验证以验证用户/密码组合。
之后,我需要保留一个代表用户的类实例,以便以各种形式使用它。
我之前尝试使用登录控件来执行此操作,该控件检查先前的条件并执行AuthenticateEventArgs.Authenticated = true
并将对象放置在会话中:Session ["user"] = authenticatedUser;
但是我在同步它们时遇到了问题(会话在 auth cookie 之前过期,并且当页面出现 NullReferenceExceptions试图使用现已失效的会话对象)。
实现这一目标的最佳方法是什么?有什么方法可以将会话超时与 cookie 寿命同步?用户对象应该以任何其他方式保存?我错过了重点吗?
更新:我不能使用 Windows 身份验证提供程序,因为该站点应该可以从外部网络访问。