2009-08-28 5 views
4

사용자에게 내 웹 응용 프로그램에 대한 액세스를 허용하지만 특정 페이지에 대한 액세스를 거부하려면 어떻게해야합니까? 내가 만든 앱을 더 많이 사용하도록 허용하고 싶지만 액세스 할 수 없도록하는 몇 페이지가 있습니다.Asp.Net은 특정 페이지에서 사용자에게 액세스하지 못하도록합니다.

다음은 Web.config에있는 내용입니다.

<authorization> 
     <allow roles="COMPANY\User_1"/> 
     <allow roles="COMPANY\User_2"/> 
     <allow roles="COMPANY\User_3"/> 

     <deny users="*"/> 
    </authorization> 

=========================================== ========================= 다음은 내가 태그에 가지고있는 것입니다.

<system.web> 
     <!-- 
      Set compilation debug="true" to insert debugging 
      symbols into the compiled page. Because this 
      affects performance, set this value to true only 
      during development. 
     --> 
     <customErrors mode="Off"/> 
     <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.Data.OracleClient, Version=2.0.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="Microsoft.SqlServer.ConnectionInfo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/> 
       <add assembly="Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/> 
       <add assembly="Microsoft.SqlServer.SmoEnum, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/> 
       <add assembly="Microsoft.SqlServer.SqlEnum, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/></assemblies> 
     </compilation> 
     <!-- 
      The <authentication> section enables configuration 
      of the security authentication mode used by 
      ASP.NET to identify an incoming user. 
     --> 
     <authentication mode="Windows"/> 





    <authorization> 
     <allow roles="COMPANY\User_1"/> 
     <allow roles="COMPANY\User_2"/> 
     <allow roles="COMPANY\User_3"/> 

     <deny users="*"/> 
    </authorization> 



     <identity impersonate="true" userName="COMPANY\User_1" password="password"/> 
     <!-- 
      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 maintainScrollPositionOnPostBack="true"> 
      <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 path="*.asmx" verb="*"/> 
      <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
      <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
      <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, 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> 

답변

0

이 비디오는 귀하의 옵션을 논의하는 좋은 방법입니다. 일부 코드도있다 :.

http://www.asp.net/learn/videos/video-06.aspx

"이 과정에서, 당신은 또한, 당신은 역할 기반 보안에 대해 배우게됩니다 ASP.NET 2.0의 새로운 멤버십 기능을 모색 할 것입니다, 당신은 방법을 사용할 수 있습니다 역할을 통해 웹 사이트에 대한 액세스를 제어 할 수 있습니다. "

7

위치 태그를 사용하여이 유형의 것을 제어 할 수 있습니다. 이 예에서

, 내가 CustomersFolder 디렉토리에 대한 고객과 관리자 액세스 제공 :
<location path="CustomersFolder"> 
    <system.web> 
     <authorization> 
      <allow roles="Customers, Admin"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

그리고이 두 번째 블록

, 나는 그 폴더에 특정 파일에 대한 액세스를 제한을에 단지 관리자 :

<location path="CustomersFolder/SecureFile.aspx"> 
    <system.web> 
     <authorization> 
      <allow roles="Admin"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

바라건대 그와 같은 것이 도움이 될 것입니다.

+0

태그 사이에 다른 많은 것들이 있습니다. 그것들 모두를 복사해야합니까? –

+0

알다시피, 나는 당신의 질문을 오해했습니다. 이것을 보는 다른 누구를 위해서 - 아니오, 당신은 전체 시스템을 복사 할 필요가 없습니다. 웹 컨텐츠. 너는 잘 가야한다. –

관련 문제