2009-07-28 3 views

Répondre

1

Toutes les suggestions de Ryan sont bonnes. En voici deux autres (variations sur son point n ° 2).

Dans le Global.asax, vous pouvez utiliser la Application_BeginRequest faire quelque chose comme ceci:

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

ou utilisez un MasterPage pour chaque page ASPX dans ce dossier et de mettre ce qui suit dans le Page_Load

if (Request.UserHostAddress != "127.0.0.1" && !Request.UserHostAddress.StartsWith("172.16")) 
{ 
    Response.Redirect("http://www.kwiktrip.com", true); 
} 
+0

Merci! J'ai utilisé votre deuxième option. –

0

Dans votre web.config que vous pouvez faire quelque chose comme:

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

Cela ne fonctionne pas. peut-être que je devrais définir un utilisateur nommé admin pour cela? –

2

Je ne pense pas qu'il y ait quoi que ce soit natif dans l'authentification des formulaires qui le fera. Vous devrez le faire; Prolongez l'authentification des formulaires pour y faire face (je pense qu'elle est scellée par endroits).

  • Tous les éléments de ce dossier héritent d'une classe de base qui vérifie l'adresse IP de l'appelant.
  • Utilisez IIS pour verrouiller ce répertoire aux clients locaux (dans IIS7, cela peut être fait dans .config je crois).
  • Ajoutez un gestionnaire HTTP pour intercepter les appels vers ce répertoire et redirigez-les s'ils ne sont pas locaux (cela peut être plus facile). Espérons que cela aide, un peu vague mais un point de départ.

  • Questions connexes