VB.NET 中的 ASP.Net 4 登录控件

登录用于授予访问受限页面的权限意味着防止未经授权的用户。 创建登录页面时,应将其命名为 Login.aspx,因为 ASP.Net 在尝试对用户进行身份验证时会查找具有此名称的页面。

我想展示一些关于登录控制的不同之处,以及它将如何移动到另一个页面。 您很少看到,用户无权访问某些特定页面时,用户会自动重定向到 Login.aspx。 当 Login.aspx 页面重定向时,查询字符串 ReturnUrl 会自动添加到页面中(参见图 4)。 ReturnUrl 查询字符串表示您最初请求的完整路径。 完成登录过程后,您会自动重定向原始页面。

首先在默认页面中添加两个超链接,分别命名为 Secret Page 和 Login 页面(参见 Default.aspx)。 使用 Navigator(NavigateUrl 属性)将 Secret 页面定向到 Secret 文件夹中的 Secret.aspx,将登录页面定向到 Login.aspx。

default.aspx.

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
      <div>
          <asp:HyperLink runat="server" ID="idhyper1" Text="Secret Page" 
                    NavigateUrl="~/Secret/Secret.aspx" EnableTheming="False"Font-Underline="False"></asp:HyperLink>
          <asp:HyperLink runat="server" ID="idhyper2" Text="Login Page" 
             NavigateUrl="~/Login.aspx" EnableTheming="False" Font-Underline="False"></asp:HyperLink>
      </div>
    </form>
</body>
</html>

然后在应用程序中添加两种新的Web表单。
首先登录.Aspx必须在应用程序的根目录中添加和在秘密文件夹中添加的第二个Secret.aspx,就像在下面的图表一样添加。

在secret.aspx页面中添加一行,它将在指向该页面时显示。

secret.aspx.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Secret.aspx.cs" Inherits="Secret_Secret" %>
<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h1>
        This is secret Page
    </h1>
    </div>
    </form>
</body>
</html>

在login.aspx页面中添加登录控件。登录控件用于创建登录表单。如果我们是现有的用户,请比我们轻松否则,我们应该填写注册。要创建注册表单,我们应该添加两个属性:

  • createUserText:在登录表单上显示文本。
  • createUserURL:Direct用户到CreateUserWizard。

我们将解释DistinationPageURL属性的好处,但在这种情况下,一旦我们填写登录表单,我们将直接指向CheckPage.aspx。
如果我们不使用destinationPageURL Properyt,而不是登录控制Default.aspx页面。

在Secret 文件夹中添加web.config以保护密钥(secret.aspx)免受不受约束/未经授权的用户(参见图1)。

web.config.

<?xml version="1.0"?>
<configuration>
       <system.web>
                    <authorization>
                              <deny users="?"/>
                    </authorization>
    </system.web>
</configuration>

login.aspx.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
               <asp:Login ID="idlogin" runat="server"
 

CreateUserText="Sign up" 

CreateUserUrl="~/CreateUserWizard.aspx"

DestinationPageUrl="~/CheckPage.aspx"

Font-Underline="false"

HyperLinkStyle-Font-Underline="false">
    </asp:Login>
    </div>
    </form>
</body>
</html>

我们在登录控件中使用CreateUserURL属性将用户指向CreateUserWizard.aspx页面。

createUserWizard.aspx页面包含CreateUserWizard控件,使表单给用户。
此表单包含用户的所有必需细节。
CreateUserWizard控件使用ContinutionDinivePageURL属性它将在此方案中指定用户到Login.aspx页面。

createUserWizard.aspx.

<%@ Page Language="C#" AutoEventWireup="true"  %>
<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:CreateUserWizard ID="idcreateuserwizard" runat="server"
                ContinueDestinationPageUrl="~/Login.aspx"></asp:CreateUserWizard>
    </div>
    </form>
</body>
</html>

在应用程序中添加检查页面以了解登录控制的DestinationPageURL属性直接检查页面。
在"检查"页面中添加一行以了解指示要检查页面的用户。

CheckPage.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckPage.aspx.cs" Inherits="CheckPage" %>
<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h1>
        This is a Check Page
    </h1>
    </div>
    </form>
</body>
</html>

在调试应用程序之前,请在default.aspx页面上使用setasstartpage属性(请参阅下面的图)。

现在调试应用程序,我们将看到第一个default.aspx页面(请参阅下面的图)。
有两个超链接(秘密页面和登录页面)。
如果单击秘密页面,则不会移动到Secret.aspx,因为secret.aspx只能访问授权用户。
这是由于秘密文件夹中的Web.config文件发生。

登录表单出现在秘密时.Aspx。
有一件事我们应该知道用户在完成登录表单后如何重定向到密钥(secret.aspx)。
还有一件事我们知道命名为returlull的查询字符串参数被自动添加到Internet Explorer地址列上的页面请求中。

如果我们是授权用户,可以使用用户名和密码登录。
单击"登录"按钮时,我们将重定向到实际调用的秘密页面(见下文)。

我们第一个进程已完成才能看到secret.aspx页面,现在我们搬家查看检查页面,看看目标触及到目标上的内容。

现在点击登录页面超链接,它指示我们在登录页面上,我们可以在那里再次看到登录表单。
将Login.aspx的地址列有没有returnull但是当我们调用给秘密页面有returnurel,这是因为在登录时发生了returnure .aspx我们直接从登录页面超链接导航。

单击登录按钮可直接在检查页面(参见下面的图),因为我们在登录控件中设置了DestinationPageURL ="~/checkpage.aspx"属性。

如果您未设置此属性,您将自动导航到 Default.aspx 页面。

Login.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Login ID="idlogin" runat="server" CreateUserText="Sign up"  CreateUserUrl="~/CreateUserWizard.aspx" 
            Font-Underline="false" HyperLinkStyle-Font-Underline="false"></asp:Login>
    </div>
    </form>
</body>
</html>

在上面的代码中,无论何时单击登录按钮,都没有 DestinationPageUrl 属性。 您自动重定向到 Default.aspx 页面。

日期:2020-06-02 22:16:03 来源:oir作者:oir