C# 如何将我网站的所有页面重定向到login.aspx?ASP.NETC

C# 如何将我网站的所有页面重定向到login.aspx?ASP.NETC,c#,asp.net,C#,Asp.net,我正在本地主机上开发项目,我希望当用户打开除home.aspx、contact.aspx、about.aspx、services.aspx以外的任何页面时,如果用户未登录,它会重定向到login.aspx 第二件事是我面临的问题是对象引用,而不是下面代码中的实例对象集 我希望当用户的会话过期时,它也会重定向到login.aspx。 我正在努力保护我的项目页面。谢谢,很抱歉英语不好 protected void Page_Load(object sender, EventArgs e) {

我正在本地主机上开发项目,我希望当用户打开除home.aspx、contact.aspx、about.aspx、services.aspx以外的任何页面时,如果用户未登录,它会重定向到login.aspx

第二件事是我面临的问题是对象引用,而不是下面代码中的实例对象集

我希望当用户的会话过期时,它也会重定向到login.aspx。 我正在努力保护我的项目页面。谢谢,很抱歉英语不好

protected void Page_Load(object sender, EventArgs e) 
{ 
   welcome.InnerText = Session["name"].ToString(); 
} 

将以下内容放入system.web部分的web配置中

使用上述部分的示例Web配置

关于第二个问题,在获取会话变量name的值时,应该检查它是否存在。因此,您需要使用如下代码

第二个问题决议


@Sunil贡献的内容将拒绝未知用户。这样,如果会话已过期,用户将被拒绝访问。问题是,这将阻止对整个网站的访问,@Hameed要求特定页面仍然可以访问。我通常构建站点的方式是将不安全的页面放在根目录中,将安全页面放在子目录中。然后为安全性创建一个新的web.config文件。

在问题的会话部分包含抛出异常的代码,您不能检查会话值是否在您知道它应该包含值的时候设置为null,以及重定向是否为null吗?试试我的建议,否则在这里发布,这样我可以帮您。@Hameed,您需要在问题中添加一些代码,其中您得到的是对象引用错误,而不是实例对象集,否则这个问题将被搁置。这是什么我不明白?你能帮助我吗?你应该首先在ASP.Net项目中打开web配置文件,然后在适当的位置插入我提供的代码。这是我的web.config文件,我应该在其中将代码放入web.config文件中?为每个文件添加第二部分佩奇就在前面。因此,您必须添加Home.aspx、Contact.aspx、Services.aspx和About.aspx的部分。这意味着第二个代码段有4个这样的区段。一旦你得到这个部分,我会告诉你我提到的第一部分放在哪里。
 <authorization>
    <deny users="?" />
 </authorization>
  <location path="Home.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
<configuration> 
<system.web>
  <authentication mode="Forms" />
  <!--this is the first part-->
  <authorization>
    <deny users="?" />
  </authorization>
  <sessionState mode="InProc" cookieless="false" timeout="540"/>
  <compilation debug="true" targetFramework="4.0"/>
</system.web>
  <!--this is the second part-->
  <location path="Home.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="Services.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="Contact.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
  <location path="About.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>
  <location path="customer/Services.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
protected void Page_Load(object sender, EventArgs e) 
{ 
  if (Session["name"] != null) 
   { 
     welcome.InnerText = Session["name"].ToString(); 
   } 
}