asp.net 2.0 フォーム認証で構成された大規模なユーザー ベースの Web サイトがあります。ユーザーがフォーム認証を介してログインする前に、使用しているマシンで Windows ログイン名/ユーザー アカウント名を取得できますか?
どうもありがとう
asp.net 2.0 フォーム認証で構成された大規模なユーザー ベースの Web サイトがあります。ユーザーがフォーム認証を介してログインする前に、使用しているマシンで Windows ログイン名/ユーザー アカウント名を取得できますか?
どうもありがとう
システムに別の Web アプリケーションを追加することで、それは確かに可能です。これが私がそれを行った大まかな方法です:
プライマリ Web アプリはフォーム認証を使用します。フォーム ログイン ページで、ローカル LAN 上にいると判断されたユーザー (IP アドレスを確認) は、Windows 認証を使用する別のアプリにリダイレクトされます。この 2 番目のアプリでは、ユーザーを特定し (アプリが存在するゾーンに資格情報を自動的に送信するようにブラウザーが構成されていると仮定します)、最初のアプリが読み取れる Cookie を設定し、ユーザーを元のアプリにリダイレクトします。 .
これは機能します。
残念ながらいいえ - ユーザーがログオンしていない場合、ユーザーは匿名でブラウジングしているため、サーバーには認識されません。それらを識別する方法はありません。
偽装を使用している場合は、ログオンしたらWindowsIdentity.GetCurrent().Name
. ただし、フォーム認証の場合、Windows を実行していない可能性があるため、ブラウザーに Windows 資格情報を直接要求する方法はありません。
これは、Web アプリケーションで Windows 認証を使用していて、ユーザーがログインしている場合にのみ可能です。
目的の種類の情報は、Web 要求の一部として送信されない (当然のことです) ため、ユーザーには不明です。ウェブサーバー。
Not BEFORE no (サーバーからではありません)。
ただし、使用する認証の種類とサイトの構成方法によっては、Windows の詳細を使用してログインさせることができます。
Microsoft の MSDN の「ASP.NET でのフォームと Windows セキュリティの混在」を参照してください。
@TheObjectGuy の回答との主な違いは、2 つの Web サイトを使用する代わりに、「単一の」ページ (WinLogin.aspx) で統合 Windows 認証を使用するように IIS を構成することで、すべてを単一の Web サイトで行うことです。