0

我有一个网站,其中有一个 admin.aspx 页面。

一旦用户成功登录到 Admin.aspx 页面,他们就会被重定向到 Report.aspx 页面。请注意,必须先成功登录 Admin.aspx 页面,才能访问 Report.aspx 页面。

请记住,还有其他页面,如 index.aspx 等,任何用户无需登录即可查看。我只需要对 Report.aspx 页面进行身份验证。

我有以下代码,但似乎无法正常工作,因为它说虚拟目录有问题。我在做一些根本错误的事情吗?

  <location path="Report.aspx">
    <system.web>
        <authentication mode="Forms">
            <forms loginUrl="Login.aspx" >
                <credentials passwordFormat="Clear">
                    <user name="John" password="pass@432"/>
                </credentials>
            </forms>
        </authentication>
        <authorization>
            <deny users="*" />
        </authorization>
    </system.web>
</location>
4

3 回答 3

1

要在成功登录后重定向用户,请使用 DestinationPageUrl 属性。

<%@ Page Language="C#" autoEventWireup="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
        void PageLoad(Object sender, EventArgs e)
        {
            Login1.DestinationPageUrl = 
                String.Format("terms.aspx?{0}", Request.QueryString.ToString());
        }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">
            <asp:Login id="Login1" runat="server" 
                DestinationPageUrl="terms.aspx">
            </asp:Login>
        </form>
    </body>
</html>
于 2013-04-08T15:06:41.513 回答
1

web.config文件中:

<location path="Default.aspx">
    <system.web>
        <authorization>
            <allow roles="Administrator, User, AdditionalUser" />
        </authorization>
    </system.web>
</location>

ASP.NET Forms Auth允许访问子目录中的特定文件,当所有其他文件都应该被拒绝时

http://weblogs.asp.net/gurusakar/archive/2008/09/29/setting-authorization-rules-for-a-particular-page-or-folder-in-web-config.aspx

于 2013-04-08T15:47:11.503 回答
1

首先,您似乎不允许您的用户John。您可能还想尝试将身份验证部分从配置文件的特定位置部分中提取出来:

<configuration>
  <system.web>
    <authentication mode="Forms">
      <forms loginUrl="Login.aspx" defaultUrl="Report.aspx">
        <credentials passwordFormat="Clear">
          <user name="John" password="pass@432"/>
        </credentials>
      </forms>
    </authentication>
  </system.web>

  <location path="Report.aspx">
    <system.web>
      <authorization>
        <allow users="John"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>
于 2013-04-08T22:57:18.070 回答