加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

Asp.Net拒绝在某些页面上访问用户

发布时间:2020-12-16 07:14:34 所属栏目:asp.Net 来源:网络整理
导读:如何允许用户访问我的Web应用程序,但拒绝他们访问特定页面?我想允许更多的用途来使用我已经构建的应用程序,但有几页我不希望他们能够访问. 这是我现在在Web.config中的内容. authorization allow roles="COMPANYUser_1"/ allow roles="COMPANYUser_2"/ al
如何允许用户访问我的Web应用程序,但拒绝他们访问特定页面?我想允许更多的用途来使用我已经构建的应用程序,但有几页我不希望他们能够访问.

这是我现在在Web.config中的内容.

<authorization>
        <allow roles="COMPANYUser_1"/>
        <allow roles="COMPANYUser_2"/>
        <allow roles="COMPANYUser_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,PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.Extensions,PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Xml.Linq,PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Data.OracleClient,Version=2.0.0.0,PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.DataVisualization,PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Windows.Forms,PublicKeyToken=B77A5C561934E089"/>
                <add assembly="Microsoft.SqlServer.ConnectionInfo,Version=9.0.242.0,PublicKeyToken=89845DCD8080CC91"/>
                <add assembly="Microsoft.SqlServer.Smo,PublicKeyToken=89845DCD8080CC91"/>
                <add assembly="Microsoft.SqlServer.SmoEnum,PublicKeyToken=89845DCD8080CC91"/>
                <add assembly="Microsoft.SqlServer.SqlEnum,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="COMPANYUser_1"/>
       <allow roles="COMPANYUser_2"/>
       <allow roles="COMPANYUser_3"/>

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



        <identity impersonate="true" userName="COMPANYUser_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,PublicKeyToken=31BF3856AD364E35"/>
                <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions,PublicKeyToken=31BF3856AD364E35"/>
                <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization,PublicKeyToken=31bf3856ad364e35"/>
            </controls>
        </pages>
        <httpHandlers>
            <remove path="*.asmx" verb="*"/>
            <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,PublicKeyToken=31BF3856AD364E35" validate="false"/>
            <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory,PublicKeyToken=31BF3856AD364E35" validate="false"/>
            <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler,PublicKeyToken=31BF3856AD364E35" validate="false"/>
            <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,System.Web.DataVisualization,PublicKeyToken=31bf3856ad364e35" validate="false"/>
        </httpHandlers>
        <httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule,PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
    </system.web>

解决方法

您可以使用位置标记来控制此类事物.

在此示例中,我向Customers和Admins授予对CustomersFolder目录的访问权限:

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

然后使用第二个块,我将访问该文件夹下的某个文件限制为Admins:

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

希望这样的东西对你有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读