新しいプロジェクトでは、ActiveDirectoryMembershipProviderとSqlRoleProviderを使用してそれぞれ認証と承認を提供する予定です。ActiveDirectoryMembershipProviderおよびSqlRoleProvider:メンテナンス?
メンテナンスがどのように処理されるかがわかりません - ログインしてロールを割り当てられたユーザーがActive Directoryから削除された場合、SqlRoleProviderが使用するマッピングテーブルで孤立したレコードを削除する方法を教えてください。私はこれがaspnet_UsersInRolesテーブルだと信じています。
無効なユーザーを定期的にActive Directoryに照会してから、Roles.RemoveUserFromRoles(UserId、Roles.GetRolesForUser(UserId))を呼び出すリストを反復処理して、UserIdもaspnet_UsersInRolesに存在することができます。大規模な組織にとっては、私は想像すると非常に遅いです。
また、UsersInRolesの各Distint UserIdに対して、ActiveDirectoryを照会して、userAccountControl属性のビットマスクがアカウントが無効であることを確認しないようにします。多数のアプリケーションユーザーにとって非常に非効率的でもあります。
もっと醜いがはるかに効率的なアプローチは、最後のログイン日を保存し、たとえば6か月間ログインしていないユーザーの役割の関連付けを定期的に消去することです。これは頭痛を引き起こす可能性があります。
私は提案を聞いて欲しいです。