2010-01-19 13 views
0

J'ai une application web d'adhésion. Un utilisateur est un administrateur ou un utilisateur invité (seulement 2 rôles)autorisations de dossier d'administration .. ne pas autoriser les invités

J'ai un dossier d'administration et un dossier invité dans cette application. Je souhaite que les administrateurs accèdent aux dossiers et à l'invité pour qu'ils n'accèdent pas au dossier Admin. Je n'utilise pas le cadre membre/rôle/profil .net. Quel est le moyen le plus simple pour sécuriser ce dossier admin?

J'ai lu quelque chose sur le changement d'emplacement dans webconfig ... mais ne savez pas où mettre est?

des suggestions?

ma config web

<appSettings> 
    <!-- 
    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" /> 
    --> 
    <add key="ChartImageHandler" value="storage=memory;deleteAfterServicing=true;"/> 
</appSettings> 
<connectionStrings> 
    <add name="abs" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=absDB;Integrated Security=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 


<system.web> 
    <identity impersonate="true"/> 
    <!-- 
     Set compilation debug="true" to insert debugging 
     symbols into the compiled page. Because this 
     affects performance, set this value to true only 
     during development. 
    --> 
<roleManager enabled="true" /> 
    <compilation debug="true"> 
     <assemblies> 
      <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     </assemblies> 
    </compilation> 
    <!-- 
     The <authentication> section enables configuration 
     of the security authentication mode used by 
     ASP.NET to identify an incoming user. 
    --> 
    <authentication mode="Forms"> 
     <forms loginUrl="Login.aspx" name="Cookie" timeout="120" path="/"> 
     </forms> 
    </authentication> 
    <authorization> 
     <deny users="?"/> 
     <allow users="*"/> 
    </authorization> 
    <sessionState mode="InProc" cookieless="false" timeout="122"/> 
    <!-- 
     The <customErrors> section enables configuration 
     of what to do if/when an unhandled error occurs 
     during the execution of a request. Specifically, 
     it enables developers to configure html error pages 
     to be displayed in place of a error stack trace. 

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
     <error statusCode="403" redirect="NoAccess.htm" /> 
     <error statusCode="404" redirect="FileNotFound.htm" /> 
    </customErrors> 
    --> 
    <pages> 
     <controls> 
      <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </controls> 
    </pages> 
    <httpHandlers> 
     <remove verb="*" path="*.asmx"/> 
     <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
    </httpHandlers> 
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </httpModules> 
</system.web> 

Répondre

1

Essayez ceci:

<configuration> 

    <!-- ... all other elements ... --> 

    <location path="Guests_Folder"> 
     <system.web> 
     <authorization> 
      <allow roles="Administrator, Guest"/> 
      <deny users="*"/> 
     </authorization> 
     </system.web> 
    </location> 
    <location path="Admin_Folder"> 
     <system.web> 
     <authorization> 
      <allow roles="Administrator"/> 
      <deny users="*"/> 
     </authorization> 
     </system.web> 
    </location> 
</configuration> 

Placez-le dans votre tag <configuration>

+0

J'ai tout essayé ... mais cela ne fonctionne pas ... un invité peut toujours ouvrir la page dans le dossier admin ... – user175084

+0

pouvez-vous suggérer ce qui ne va pas dans mon webconfig merci .. – user175084

1

Est-ce que des clients ont une connexion? Si ce n'est pas le cas, vous pouvez déposer une configuration web dans le dossier invité qui a un pour la configuration web. La pensée principale est que vous pouvez varier les accès en ajoutant une configuration web dans chaque dossier que vous voulez contrôler avec les éléments correctes d'autorisation ou de refus pour les rôles auxquels vous voulez accorder l'accès. Cela fonctionne le plus facilement si les invités sont de vrais invités. c'est-à-dire que vous n'êtes pas connecté. Le fait que vous ayez une configuration dans chaque dossier qui varie de la racine est la principale chose que vous devez comprendre pour que les éléments d'autorisation fonctionnent correctement.

Vous ne voulez pas répéter tout le web.config, juste la partie d'autorisation.

+0

j'ai essayé ur way mais rien ne se passe ... que dois-je retirer de mon fichier de configuration web orignal comme indiqué ci-dessus ... pouvez-vous suggérer .. parce que je sais que je suis très proche de la résoudre – user175084

Questions connexes