あなたが正しいことを理解するためには、何かにアクセスするための唯一の方法がWindowsセキュリティ(あなたのケースではアクティブなディレクトリ)を介して検証されるWebサイトがあります。明示的に定義されたユーザ&ロールをweb.configやデータベースに使用していません。だから私はあなたがあなたの承認を得たと言うことは安全だと仮定し、それはすべてのページに適用されます。
ここでは、企業のオフィスに物理的に存在する人へのアクセスを制限する特定の.aspxページがあります。これらはすでにADアカウントを持っている人で、現場での作業やVPN経由での接続中に会社の発行したラップトップからサイトにアクセスするので、ADは引き続きそのことを実行できます。しかし、あなたは、これらの前述の人々がこの1つの特定のページのオフィスに居ることを望みます。
上記では、経由してIPアドレスを読み取ることができ、コードビハインドあなたの.aspxの中のファイルから(Webフォームを使用している場合)、trueの場合:
ます。Console.WriteLine(Request.UserHostAddress)。
aspxスタイルのレンダリングエンジンでMVCを使用している場合は、同じことが適用されます。
10.x.x.x
172.16.x.x
192.168.x.x
それが適切であるサブネットを把握するために、あなたの上にあります:あなたはアドレスを読んで、それはこれらのパターンの1以下の場合は
は、それが内部アドレスです。
ここで、実際にあなたの会社に雇用されているかどうかにかかわらず、Active Directoryを使用してすべてのアプリケーションユーザーを格納することが問題になっているとします。そのシナリオでは、あなたのユーザーがいくつかの信用を打ち、あなたはSystem.DirectoryServices(またはあなたが望むもの)を介してADにこれらを供給していると思いますが、実際の従業員だけでなく、それはADの中で共存するようになる。このシナリオでは、ログインしたユーザーのDirectorySearcherを起動して、それらが従業員のセキュリティグループのメンバーであるかどうかを確認することができます(これは正しいですか?)、または以前のシナリオに従ってIPベースのフィルターを使用できます。
内部IPで制限するのは正しくはありません。この1ページを、内部でルート可能な特定のサーバー上のIISの別のWebサイトに分割する方が良いでしょうか?
着信IPアドレスを読み取り、それがローカルのサブネットの1つであることを確認することができます –
手がかりを与える方法はありますか? –