【问题标题】:run a script in every aspx file在每个 aspx 文件中运行一个脚本
【发布时间】:2011-03-28 22:53:50
【问题描述】:

如何在每个 aspx 文件中运行脚本?

这是我想在每个 aspx 文件的开头运行的内容。我该怎么做?

我不想将它复制并粘贴到我拥有的每个文件中

   if (CUser.LoginID == "")
   {
            Response.Redirect("login.aspx");
   }

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    最简单的方法可能是创建一个从System.Web.UI.Page 继承的基页类,并在Page_Load 中运行此代码。然后,将每个页面更改为从基页面类继承。然后,任何时候页面加载,都会在基类和页面类中执行Page_Load

    执行此操作的更好方法可能是实现HttpModule,但稍微复杂一些。 HttpModule 背后的想法是它会拦截请求,做一些自定义的事情,然后像往常一样传递请求。

    【讨论】:

      【解决方案2】:

      您可能希望为此使用HTTP module

      HTTP 模块为 Web 应用程序注册,并在整个请求生命周期的特定时间点接收事件。

      由于这看起来与站点身份验证有关,您可以使用 AuthenticateRequest 事件检查您的 CUser.LoginID 属性并在必要时重定向。

      【讨论】:

        【解决方案3】:

        创建一个 BasePage.cs 类:

        public class BasePage:System.Web.UI.Page
        {
        
           protected override void OnInit(EventArgs e)
           {
               if (CUser.LoginID == "")
               {
                   Response.Redirect("login.aspx");
               }
           }
        }
        

        然后每个 aspx 文件都从:

        public partial class pagename: System.Web.UI.Page
        

        public partial class pagename: BasePage
        

        你就完成了。它应该适合你。如果用户未登录,它非常适合我的用户登录跟踪和重定向。

        【讨论】:

          【解决方案4】:

          如果您想对页面请求中的用户进行身份验证,正如您的代码所建议的那样,您应该查看 asp.net 表单身份验证。

          http://www.asp.net/security/tutorials/an-overview-of-forms-authentication-cs

          如果您想在每个页面请求上运行任意一组函数,您可以:

          1) 创建一个继承自 System.Web.UI.Page 的基本页面,覆盖 OnInit 方法并将您的代码粘贴在其中。确保您的页面现在继承自该新的基本页面。

          2) 通过在 Application_BeginRequest 方法中添加您的代码来修改 Global.asax.cs。

          【讨论】:

            【解决方案5】:

            我可以直接回答你的问题。但是,通常的做法是将身份验证重定向放在 web.config 中。它会在这样的部分中:

             <authentication mode="Forms">
               <forms name=".SAMPLESITEAUTH" loginUrl="~/Login.aspx" protection="All" timeout="20" slidingExpiration="true" path="/" cookieless="UseCookies"></forms>
             </authentication>
            

            用户将被重定向到 loginUrl 中列出的 url。

            【讨论】:

              猜你喜欢
              • 2014-06-11
              • 2020-07-04
              • 1970-01-01
              • 1970-01-01
              • 2012-05-02
              • 2023-01-19
              • 2022-01-23
              • 1970-01-01
              • 2012-12-15
              相关资源
              最近更新 更多