Application_AuthorizeRequest

Discussion in 'ASP .Net' started by MCM14, Jun 29, 2010.

  1. MCM14

    MCM14 Guest

    I use the Sub Application_AuthorizeRequest in the application pipeline to do
    some custom page authorization. Basically I check the page requested and
    redirect to the Login page if needed. The problem is, every single request
    gets sent through here, including static files like .css. Is there a way for
    me to configure this to only trigger when a .aspx file is requested?
     
    MCM14, Jun 29, 2010
    #1
    1. Advertising

  2. Hi MCM14,

    Based on my understanding, you got the problem that the
    Application_AuthorizeRequest checks all the requests including static files
    like .css file and .js file. As far as I know, this issue only occurs when
    we are debugging the website via ASP.NET development server of Visual
    Studio.

    As we know, the module that ASP.NET development server holds is different
    from the one working with IIS. It makes all the requests of files go
    through its application pipeline. But when the site is published to IIS,
    only the requests to the specified file extensions will access the
    application pipeline. This list can be found and edited in IIS.

    I made a test demo to illustrate this phenomenon just using a blank ASP.NET
    page linking a .css file and some simple code in
    Application_AuthenticateRequest function.

    //ASP.NET page

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
    Inherits="WebApplication1._Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title></title>
    <link rel="Stylesheet" href="Stylesheet1.css" />
    </head>
    <body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
    </body>
    </html>

    //Application_AuthenticateRequest function in Global.asax.cs

    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {
    using (StreamWriter sw = new
    StreamWriter(Server.MapPath("~/log.txt"),true,System.Text.Encoding.Default))
    {

    sw.Write(Request.Url.ToString() + "\r\n");
    }
    }

    When we debug this page via Visual Studio, the log.txt will be appended
    info like this:

    http://localhost:6402/Default.aspx
    http://localhost:6402/Stylesheet1.css
    http://localhost:6402/favicon.ico

    But after we publish the site to IIS 7 and run it again, the log.txt will
    only have info like:

    http://localhost/default.aspx


    --
    Sincerely,
    Bravo Yang
    Microsoft Online Support

    ==================================================

    Get notification to my posts through email? Please refer to
    http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

    MSDN Managed Newsgroup support offering is for non-urgent issues where an
    initial response from the community or a Microsoft Support Engineer within
    2 business day is acceptable. Please note that each follow up response may
    take approximately 2 business days as the support professional working with
    you may need further investigation to reach the most efficient resolution.

    The offering is not appropriate for situations that require urgent,
    real-time or phone-based interactions. Issues of this nature are best
    handled working with a dedicated Microsoft Support Engineer by contacting
    Microsoft Customer Support Services (CSS) at
    http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx

    ==================================================
     
    Shengqing Yang [MSFT], Jul 7, 2010
    #2
    1. Advertising

  3. MCM14

    MCM14 Guest

    Thank you. That is very helpful. Can you tell me where in IIS that extension
    list is located?


    "Shengqing Yang [MSFT]" wrote:

    > Hi MCM14,
    >
    > Based on my understanding, you got the problem that the
    > Application_AuthorizeRequest checks all the requests including static files
    > like .css file and .js file. As far as I know, this issue only occurs when
    > we are debugging the website via ASP.NET development server of Visual
    > Studio.
    >
    > As we know, the module that ASP.NET development server holds is different
    > from the one working with IIS. It makes all the requests of files go
    > through its application pipeline. But when the site is published to IIS,
    > only the requests to the specified file extensions will access the
    > application pipeline. This list can be found and edited in IIS.
    >
    > I made a test demo to illustrate this phenomenon just using a blank ASP.NET
    > page linking a .css file and some simple code in
    > Application_AuthenticateRequest function.
    >
    > //ASP.NET page
    >
    > <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
    > Inherits="WebApplication1._Default" %>
    >
    > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    >
    > <html xmlns="http://www.w3.org/1999/xhtml" >
    > <head runat="server">
    > <title></title>
    > <link rel="Stylesheet" href="Stylesheet1.css" />
    > </head>
    > <body>
    > <form id="form1" runat="server">
    > <div>
    >
    > </div>
    > </form>
    > </body>
    > </html>
    >
    > //Application_AuthenticateRequest function in Global.asax.cs
    >
    > protected void Application_AuthenticateRequest(object sender, EventArgs e)
    > {
    > using (StreamWriter sw = new
    > StreamWriter(Server.MapPath("~/log.txt"),true,System.Text.Encoding.Default))
    > {
    >
    > sw.Write(Request.Url.ToString() + "\r\n");
    > }
    > }
    >
    > When we debug this page via Visual Studio, the log.txt will be appended
    > info like this:
    >
    > http://localhost:6402/Default.aspx
    > http://localhost:6402/Stylesheet1.css
    > http://localhost:6402/favicon.ico
    >
    > But after we publish the site to IIS 7 and run it again, the log.txt will
    > only have info like:
    >
    > http://localhost/default.aspx
    >
    >
    > --
    > Sincerely,
    > Bravo Yang
    > Microsoft Online Support
    >
    > ==================================================
    >
    > Get notification to my posts through email? Please refer to
    > http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
    >
    > MSDN Managed Newsgroup support offering is for non-urgent issues where an
    > initial response from the community or a Microsoft Support Engineer within
    > 2 business day is acceptable. Please note that each follow up response may
    > take approximately 2 business days as the support professional working with
    > you may need further investigation to reach the most efficient resolution.
    >
    > The offering is not appropriate for situations that require urgent,
    > real-time or phone-based interactions. Issues of this nature are best
    > handled working with a dedicated Microsoft Support Engineer by contacting
    > Microsoft Customer Support Services (CSS) at
    > http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    >
    > ==================================================
    >
    > .
    >
     
    MCM14, Jul 7, 2010
    #3
  4. Hi MCM14,

    You can find the list by the steps below.

    For IIS6:

    1. Open Internet Information Services (IIS) from Administrative Tools in
    Control Panel.
    2. Select your website from the Web Sites tree node and right click it to
    open the Properties dialog window.
    3. Go to Home Directory tab and click the Configuration Button in
    Application Settings frame.

    For IIS7:

    1. Open Internet Information Services (IIS) from Administrative Tools in
    All Control Panel Items.
    2. Select your website from the Web Sites tree node.
    3. Double click the Handler Mappings icon from the IIS frame in the main
    page of window.

    --
    Sincerely,
    Bravo Yang
    Microsoft Online Support

    ==================================================

    Get notification to my posts through email? Please refer to
    http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

    MSDN Managed Newsgroup support offering is for non-urgent issues where an
    initial response from the community or a Microsoft Support Engineer within
    2 business day is acceptable. Please note that each follow up response may
    take approximately 2 business days as the support professional working with
    you may need further investigation to reach the most efficient resolution.

    The offering is not appropriate for situations that require urgent,
    real-time or phone-based interactions. Issues of this nature are best
    handled working with a dedicated Microsoft Support Engineer by contacting
    Microsoft Customer Support Services (CSS) at
    http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx

    ==================================================
     
    Shengqing Yang [MSFT], Jul 12, 2010
    #4
  5. MCM14

    MCM14 Guest

    Thanks very much.

    "Shengqing Yang [MSFT]" wrote:

    > Hi MCM14,
    >
    > You can find the list by the steps below.
    >
    > For IIS6:
    >
    > 1. Open Internet Information Services (IIS) from Administrative Tools in
    > Control Panel.
    > 2. Select your website from the Web Sites tree node and right click it to
    > open the Properties dialog window.
    > 3. Go to Home Directory tab and click the Configuration Button in
    > Application Settings frame.
    >
    > For IIS7:
    >
    > 1. Open Internet Information Services (IIS) from Administrative Tools in
    > All Control Panel Items.
    > 2. Select your website from the Web Sites tree node.
    > 3. Double click the Handler Mappings icon from the IIS frame in the main
    > page of window.
    >
    > --
    > Sincerely,
    > Bravo Yang
    > Microsoft Online Support
    >
    > ==================================================
    >
    > Get notification to my posts through email? Please refer to
    > http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
    >
    > MSDN Managed Newsgroup support offering is for non-urgent issues where an
    > initial response from the community or a Microsoft Support Engineer within
    > 2 business day is acceptable. Please note that each follow up response may
    > take approximately 2 business days as the support professional working with
    > you may need further investigation to reach the most efficient resolution.
    >
    > The offering is not appropriate for situations that require urgent,
    > real-time or phone-based interactions. Issues of this nature are best
    > handled working with a dedicated Microsoft Support Engineer by contacting
    > Microsoft Customer Support Services (CSS) at
    > http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
    >
    > ==================================================
    >
    > .
    >
     
    MCM14, Jul 20, 2010
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. MCM

    Application_AuthorizeRequest

    MCM, Mar 25, 2010, in forum: ASP .Net
    Replies:
    1
    Views:
    1,258
Loading...

Share This Page