2009-07-28 7 views
0

ローカルWebサービスへのhttpコールを使用するアプリケーションがあります。 ASP.NETで保護されたアプリケーション全体が承認を取得していますが、特定のフォルダをローカルコールでのみ使用できるようにしたいと考えています。ASP.NETウィンドウフォーム認証を使用して非ローカルアクセスを防止する方法

どうすればいいですか?

ありがとうございます!私はそれを行いますフォーム認証でのネイティブ何があるとは思わない

<location path="~/blog/add"> 
    <system.web> 
     <authorization> 
     <allow users="admin" /> 
     <deny users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

答えて

1

ライアンの提案はすべて良好です。もう2つの点があります(彼のポイント#2のバリエーション)。

if (Request.UserHostAddress != "127.0.0.1" && !Request.UserHostAddress.StartsWith("172.16") && Request.Url.AbsolutePath.Contains("AdminFolderName")) 
{ 
    Response.Redirect("~/somenonproectedpageornoaccessmessagepage.aspx", true); 
} 

またはそのフォルダ内の各ASPXページのマスターページを使用して、Page_Loadの中

if (Request.UserHostAddress != "127.0.0.1" && !Request.UserHostAddress.StartsWith("172.16")) 
{ 
    Response.Redirect("http://www.kwiktrip.com", true); 
} 
を次のように置く:Global.asaxの中

、あなたはこのような何かをApplication_BeginRequestを使用することができます

+0

ありがとう!私はあなたの第二の選択肢を使いました。 –

0

あなたのweb.configファイルでは、あなたのような何かを行うことができます。 する必要があります。

  1. これに対処するためにフォーム認証を拡張します(ただし、封印されていると思います)。
  2. そのフォルダのすべてのアイテムが、呼び出し元のIPアドレスを確認する基本クラスから継承していることを確認します。
  3. IISを使用してそのディレクトリをローカルクライアントにロックダウンします(IIS7ではこれは.configで実行できます)。
  4. HTTPハンドラを追加して、そのディレクトリへの呼び出しを傍受し、ローカルでない場合はリダイレクトします(これは最も簡単かもしれません)。

ほんの少し曖昧ですが出発点です。

+0

これは機能しません。多分私はそれのための管理者という名前のユーザーを設定する必要がありますか? –

2

関連する問題