0

ここで説明されているソリューションに従って います

mvc3 の私のコントローラーは、このようなカスタム FilterIP 属性で装飾されています

 //Admin/Device/Edit/1
    [FilterIP(
            ConfigurationKeyAllowedSingleIPs = "AllowedAdminSingleIPs",
            ConfigurationKeyAllowedMaskedIPs = "AllowedAdminMaskedIPs",
            ConfigurationKeyDeniedSingleIPs = "DeniedAdminSingleIPs",
            ConfigurationKeyDeniedMaskedIPs = "DeniedAdminMaskedIPs"
    )]
    public ActionResult Edit(int Id).... ommiting

そしてWeb.configでは、これらの値をappSettings内に持っています

 <appSettings>
  <add key="AllowedAdminSingleIPs" value="89.111.212.141"/>
  <add key="AllowedAdminMaskedIPs" value="10.2.0.0;255.255.0.0"/>
  <add key="DeniedAdminSingleIPs" value=""/>
  <add key="DeniedAdminMaskedIPs" value=""/>
 </appSettings>

現在、http: //www.whatismyip.com/ を使用 して現在の IP を検出しています (ISP から動的 IP を取得しているため)。私の知る限り、これは自分のIPを使用した後に機能するはずです。89.111.212.141 は私の isp 動的 IP です。しかし、うまくいきません。

何が問題になる可能性がありますか? 装飾されたコントローラーのアクションを実行すると、常にログインにリダイレクトされます。言及するだけで、localhost を AllowedAdminSingleIPs として使用すると機能します。

4

1 に答える 1

3

アプリケーションをローカル (VS 組み込み Web サーバー) でホストしていて、ローカルでアクセスしている場合、IP は によって返される 127.0.0.1 である可能性がありますhttpContext.Request.UserHostAddress。何が起こっているかを確認するために、ブレークポイントを配置してコードをデバッグしてみてください。

于 2012-04-18T11:57:23.313 に答える