2010-01-19 3 views
0

회원 웹 애플리케이션이 있습니다. 사용자가 관리자이거나 게스트 사용자 (역할이 2 개)관리 폴더 권한 .. 손님을 허용하지 않습니다

이 응용 프로그램에는 admin 폴더와 guest 폴더가 있습니다. 관리자가 폴더 및 게스트에 액세스하여 Admin 폴더에 액세스하지 못하도록하고 싶습니다.

.net member/role/profile 프레임 워크를 사용하고 있지 않습니다. 해당 관리자 폴더를 보호하는 가장 쉬운 방법은 무엇입니까?

나는 webconfig에서 위치를 변경하는 것에 대해 읽었지만 ... 어디에 넣을 지 모르겠다 ??

제안 사항 ???

내 웹 설정

<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> 

답변

1

이 시도 : 당신의 <configuration> 태그

+0

나는 모든 것을 시도했지만 ... 작동하지 않습니다 ... 손님은 여전히 ​​admin 폴더에서 페이지를 열 수 있습니다 ... – user175084

+0

내 webconfig 덕분에 무엇을 제안 할 수 있습니다 .. – user175084

1

합니까 고객 내부

<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> 

장소는 로그인이? 그렇지 않은 경우 웹 구성에 대한 게스트 구성 폴더가있는 웹 구성에 드롭 할 수 있습니다.

액세스 권한을 부여 할 역할에 대해 올바른 허용 또는 거부 요소를 사용하여 제어하려는 각 폴더에 웹 구성을 추가하여 누가 액세스 할 수 있는지 달라질 수 있습니다. 손님이 참된 손님이라면 이것은 가장 쉬운 방법입니다. 즉, 로그인하지 마십시오. 루트와 다른 각 폴더에 구성이 있다는 사실은 권한 부여 요소를 올바로 작동 시키려면 이해해야 할 주요 사항입니다.

인증 부분 만 web.config 전체를 반복하고 싶지는 않습니다.

+0

나는 방법을 시도 하지만 아무것도 일어나지 않습니다 ... wht 내가 위에서 설명한 것처럼 내 orignal 웹 구성 파일에서 제거해야 ... u 제안 할 수 .. coz 내가 그것을 해결하기 위해 아주 가까운 메신저 알아요 – user175084