フォーム認証を実装する方法はありますが、特定の URL に対してのみです。たとえば、formsAuthentication で staging.mydomain.com のサイトを保護する必要がありますが、web.config が誤って運用サイトに移動された場合に www.mydomain.com へのアクセスを妨げないようにします。
4 に答える
過去に簡単な回避策を使用しました。
デフォルトのログイン ページを、匿名ユーザーがアクセスできるシンプルなページに設定します。これを checkDomain.aspx と呼びましょう。
そのページで、ドメインの簡単なチェックを行い、それに基づいて、ユーザーをステージング サイトの login.aspx ページ、または運用サイトの元の要求された URL にリダイレクトします。これは見栄えがよくありませんでしたが、そのようなことが起こるのではないかと心配していた短期間で、すばやく簡単に実装できました。
これは実現できますが、独自の IHttpModule を実装する必要があります。悲しいかな、FormsAuthenticationModule は封印されているため、ゼロから始める必要がありますが、Reflectorはその点で非常に役立ちます。
フォーム認証は Web サイト インスタンスに実装されています。そのようには機能しません。
web.config は、FormsAuthentication の機能を管理できる場所です。したがって、答えはあなたの質問のようなものであり、@Andrewは正しいです。
ただし、global.asax で何かを実行して、サイトが実行されているサーバーまたはドメインを認識し、FormsAuthentication を無効にすることができる場合があります。すべてにアクセスできるユーザーを作成し、ドメインが www.mydomain.com の場合、セッションの開始時に FormsAuthenticationTicket をそのユーザーに手動で設定します。
これは少しハックです。代わりに、帯域外の方法で web.config を制御することをお勧めします。