それらは完全に異なる認証スキームだからです。
無効化された匿名アクセス(Windowsアカウントを使用)を使用することにより、技術的にアプリケーションをオープンモードで実行し(アプリケーションレベルの認証はありません)、IISに依存して、ドメインで認証されていない、またはドメインで認証されていないユーザーへのページを拒否します。ページを表示する権限がありません)。LOGON_USER変数があるため、アプリケーションは誰が実行しているかのみを認識しますが、アプリケーションはユーザーをまったく認証していません。認証を実行したのはIIS(ドメイン名やグループなどに基づいてユーザーを拒否する)です。
アプリケーションにWINDOWSを介して認証するように指示すると、そのWebサイトのアプリケーションアカウントがIISからの情報(LOGON_USER変数)に関連付けられ、そのアプリケーションアカウントとして扱われます。
フォーム認証では、IPrincipalを実装するオブジェクトを生成し、それを特定のリクエストセット(Page.User.IsAuthenticatedなどにアクセスできるようにする)のアプリケーションに割り当てることを想定しています。さらに、FormAuthenticationTicketが作成され、設定されることを想定しています(これは、Cookieを処理するものではありません)。これらの処理は、ログインプロバイダーを介して、または手動で実行できます。
さて、ここに楽しいものがあります。
FORMS認証モードを使用し、匿名アクセスを無効にするには、LOGON_User変数を介してアプリケーションに渡された情報を使用してユーザーをシステムに自動的にログイン(FormsAuthentication cookieeを生成)するだけです。これは、ユーザーが認証されているかどうか、または新しいリクエストのセット(application_authenticaterequestやapplication_sessionstartなど)を中心に展開するGlobal.asaxメソッドを確認することで実行できます。
または、匿名アクセスを許可することもできますが、ADサーバーに対してFORMS認証を実行するようにします:http://msdn.microsoft.com/en-us/library/ms998360.aspx