|
首页>编程技术>asp.net编程> |
ASP.NET 2.0中保证应用程序的安全 |
|
|
示例
下面的例子演示了在应用程序中如何使用成员 API。
创建新用户
下面的例子演示了如何建立新的MembershipUser。示例使用了Membership.CreateUser重载,它返回一个状态参数。其它的重载也可以使用,他们会抛出异常而不是返回状态代码。请注意,在默认情况下,成员特性要求密码至少有7个字符长度,并且密码至少包含一个非数字字符。
<script runat="server"> Sub btnCreate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim userName As String = txtUserId.Text "这个值式加密的或散列过,不会显示 Dim password As String = txtPassword.Text Dim email As String = txtEmail.Text Dim passwordQuestion As String = ddlPasswordQuestion.SelectedValue "这个值式加密的或散列过,不会显示 Dim passwordAnswer As String = txtPasswordAnswer.Text Dim result As MembershipCreateStatus 数据挖掘实验室
Membership.CreateUser(userName, password, email, passwordQuestion, passwordAnswer, True, result)
lblResults.Visible = True Select Case result Case MembershipCreateStatus.Success txtUserId.Text = Nothing txtPassword.Text = Nothing txtEmail.Text = Nothing ddlPasswordQuestion.SelectedIndex = -1 txtPasswordAnswer.Text = Nothing lblResults.Text = "User successfully created!" Case MembershipCreateStatus.InvalidUserName lblResults.Text = "The username format was invalid. Please enter a different username." Case MembershipCreateStatus.InvalidPassword lblResults.Text = "The password was invalid: A password cannot be an empty string and must also meet the pasword strength requirements of the configured provider. Please enter a new password." Case MembershipCreateStatus.InvalidEmail lblResults.Text = "The email format was invalid. Please enter a different username." Case MembershipCreateStatus.InvalidQuestion 数据挖掘研究院 lblResults.Text = "The password question format was invalid. Please enter a different question." Case MembershipCreateStatus.InvalidAnswer lblResults.Text = "The password answer format was invalid. Please enter a different answer." Case MembershipCreateStatus.DuplicateUsername lblResults.Text = "The username is already in use. Please enter a new username." Case MembershipCreateStatus.DuplicateEmail lblResults.Text = "The email address is already in use. Please enter a different email address." Case Else lblResults.Text = "An error occurred while creating the user." End Select End Sub </script> |
用户登录和访问用户属性
下面的例子演示了用户使用Membership.ValidateUser方法登录。它还演示了在登录用户的时候如何同时使用窗体认证和成员特性。在上面的例子中创建用户之后,请在登录页面上输入凭证。一旦你登录了,你会被重定向到一个页面,该页面利用Membership.GetUser来检索与登录用户相对应的MembershipUser实例。同时请注意,这个页面还显示了目录上设置的用户属性,这些内容只有通过认证的用户才能访问。点击页面底部的登出链接可以退出站点。 数据挖掘交友
<script runat="server"> Protected memUser As MembershipUser
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) memUser = Membership.GetUser() End Sub
Sub linkLogout_Click(ByVal sender As Object, ByVal e As System.EventArgs) FormsAuthentication.SignOut() Roles.DeleteCookie() FormsAuthentication.RedirectToLoginPage() End Sub </script>
User Name/ID: <% = Server.HtmlEncode(memUser.Username) %> Email:<% = Server.HtmlEncode(memUser.Email) %> |
更新用户属性
请用前面建立的用户凭证登录。页面会用ASP.NET 2.0中新的DetailsView控件显示用户属性。DetailsView控件与一个数据源控件通讯。在例子中,ObjectDataSource控件检索MembershipUser实例的内容。你可以点击页面底部的"编辑"链接使DetailsView进入编辑模式。MembershipUser的电子邮件和注释都可以修改。点击"更新"链接可以把新值保存到数据库。请注意,在代码中页面实现了ItemUpdating事件,该事件是由ObjectDataSource引发的。这样做是必要的,MembershipUser类没有参数化构造函数,它要求使用ObjectDataSource的双向数据绑定。点击登出链接可以退出。 数据挖掘工具
Sub DetailsView1_ItemUpdating(ByVal sender As Object, ByVal e as DetailsViewUpdateEventArgs) "必须手动处理更新操作,因为MembershipUser 没有参数化的构造函数 Dim memUser as MembershipUser = Membership.GetUser()
memUser.Email = CStr(e.NewValues(0)) memUser.Comment = CStr(e.NewValues(1))
Try Membership.UpdateUser(memUser) e.Cancel = true DetailsView1.ChangeMode(DetailsViewMode.ReadOnly) Catch ex as Exception Response.Write("<div>The following error occurred:<font color="red"> " + ex.Message + "</font></div>") e.Cancel = true End Try End Sub |
|
|
|
|
|
[数据挖掘工作交流]
[数据挖掘研究院]
[数据挖掘论坛]
[数据挖掘实验室]
|
上一篇:ASP.NET 2.0中保证应用程序的安全
下一篇:ASP.NET 2.0中保证应用程序的安全
|
|
|
|