ASP.NET Webサイトにフォーム認証を実装したいのですが、サイトはデータベース上のユーザーを探してデータを取得してから、LDAP(Active Directory)に対して認証して、ユーザーとパスワードの組み合わせを検証する必要があります。
その後、さまざまな形式で使用するために、ユーザーを表すクラスのインスタンスを保持する必要があります。
以前にログインコントロールを使用してこれを実行しようとしました。これは、以前の条件をチェックしAuthenticateEventArgs.Authenticated = true
、オブジェクトをセッション内に配置しました。Session ["user"] = authenticatedUser;
しかし、両方の同期に問題がありました(セッションは、認証Cookieの前に期限切れになり、ページのときにNullReferenceExceptionsが発生しました。現在は機能していないセッションオブジェクトを使用しようとしました)。
これを達成するための最良の方法はどれですか?セッションタイムアウトをCookieの寿命と同期させる方法はありますか?ユーザーオブジェクトは他の方法で保存する必要がありますか?ポイントを逃しましたか?
更新:サイトは外部のプライベートネットワークからアクセスできる必要があるため、Windows認証プロバイダーを使用できません。