• λ我爱Aspx >> Asp.Net >> ASP.NET 2.0中保证应用程序的安全
  • ASP.NET 2.0中保证应用程序的安全

  • :陶刚编译  Դ:天极开发  :2007-3-18 16:42:36  ؼ:.net,asp.net,asp
  • 使用登录控件

      下面的例子演示了在应用程序中如何使用登录控件。

      创建和登录用户

      在例子中我们会看到站点的主页,它包含了一个LoginStatus控件,该控件提示用户登录站点。这个页面上的LoginStatus控件检查用户当前是否通过了认证,并向用户显示一个登录链接。用户点击这个链接就可以看到默认的login.aspx页面,在web.config中已经把这个页面配置为窗体认证。Login控件显示在Login.aspx页面上(请注意,在默认的登录页面上登录控件的VisibleWhenLoggedIn属性会被忽略)。在例子中,登录控件设置了额外的属性,显示了"创建用户"链接,点击这个链接会访问另外一个页面,那个页面使用了CreateUserWizard控件。在默认情况下,CreateUserWizard控件包含两个步骤,在第一步中用户输入必要的信息,当他们点击"创建用户"按钮的时候,控件把这些信息传递给成员API。如果成员API不能建立该用户,在控件中会显示适当的错误信息;如果用户创建成功,控件就载入向导的第二步。在例子中,ContinueDestinationPageUrl属性被设置为在用户创建成功之后返回主页。在默认情况下,当用户被成功创建之后,CreateUserWizard会认证并登录用户。当用户返回到主页的时候,他们会注意到LoginStatus被删除了,他们已经通过了认证,并显示了一个登出链接。点击登录链接会引起用户认证票据(ticket)被清除,并显示登录链接。这时用户可以点击登录链接,由于他们已经创建了用户帐号,所以可以在login.aspx上输入用户名和密码来登录网站。你可能注意到Login控件显示了一个"记住帐号(remember me)"检查框。选中这个框并成功登录之后,会向用户的计算机上写入一个cookie,该cookie默认的存续期是50年。你可以通过把Login控件的DisplayRememberMe和RememberMeSet属性设置为false来禁用这个选项。查看示例的代码,你可以发现这项事务并没有任何代码,只设置了少许的几个属性。这些控件的样式属性都是站点应用的样式表设置的。

    Login.aspx
    <%@ Page Language="VB" MasterPageFile="~/Site.master"%>
    <asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">
    <asp:login ID="Login1" runat="server" createuserurl="CreateUser.aspx" createusertext="Create a New Account" />
    </asp:Content>

    CreateUser.aspx
    <%@ Page Language="VB" MasterPageFile="~/Site.master"%>
    <asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">
    <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" continuedestinationpageurl="Home.aspx"/><br />
    <a href="Home.aspx">Return to Default Home Page</a><br />
    <a href="HomeLoginView.aspx">Return to LoginView Home Page</a><br />
    <a href="HomeChangePassword.aspx">Return to ChangePassword Home Page</a><br />
    </asp:Content>

      向认证用户显示不同的内容

      下面的例子演示了使用LoginView控件为认证过的用户和匿名用户显示不同的内容。尽管例子中没有显示什么,但是LoginView控件支持基于用户角色来显示不同内容。LoginView控件中的AnonymousTemplate模板包含了一个登录控件,LoggedInTemplate模板包含了LoginName控件。LoginName控件利用格式化字符串属性来显示欢迎和用户姓名。请使用上一个例子中创建的帐号或重新创建一个帐号来登录站点,并点击页面上方的登出链接。

    <%@ Page Language="VB" MasterPageFile="~/Site.master"%>

    <asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">
    <asp:loginview ID="LoginView1" runat="server">
    <loggedintemplate>
    <h1>
    <asp:loginname id="LoginName1" runat="server" formatstring="Welcome {0}" />
    </h1>
    </loggedintemplate>
    <anonymoustemplate>
    <h1>Welcome to Login Controls</h1>
    <asp:login ID="Login1" runat="server" createuserurl="CreateUser.aspx" createusertext="Create a New Account" />
    </anonymoustemplate>
    </asp:LoginView>
    </asp:Content>

      修改密码

      在默认情况下,ChangePassword控件要求用户通过了站点的认证才能更改他们的密码。但是,在下面的例子中,我们把DisplayUserName属性设置为真,其结果是用户在改变自己的密码之前,可以由ChangePassword控件进行认证,或者通过站点认证的用户输入不同的帐号来改变密码。例子还链接到了创建用户页面,使你能够创建有效的用户并测试示例。

    <%@ Page Language="VB" MasterPageFile="~/Site.master"%>
    <asp:Content ID="Content1" ContentPlaceHolderId="MainBody" runat="server">
    <asp:ChangePassword ID="ChangePassword1" runat="server" createuserurl="CreateUser.aspx" createusertext="Create a New Account" canceldestinationpageurl="HomeChangePassword.aspx" displayusername="true" continuedestinationpageurl="HomeChangePassword.aspx"/>
    </asp:Content>
    Ҷƪл˵?
  • һƪASP.NET动态生成html页面
    һƪASP.NET编程入门随想之宽容