如何:从个性化设置存储区中移除用户条目

更新:2007 年 11 月

在使用个性化设置的 ASP.NET Web 应用程序中,某些情况下可能需要从个性化设置存储区中移除条目。如何:使用户能够清除个性化设置状态说明了最简单的方法,即通过页面上的控件公开 ResetPersonalizationState 方法,这样各位用户就可以移除与其有关的所有个性化设置数据。但是,如果需要管理其他多位用户的个性化设置数据,则必须使用 PersonalizationAdministration 类的各种方法。

ms366517.alert_note(zh-cn,VS.90).gif说明:

PersonalizationAdministration 类的方法的访问权限只应授予页面管理员。

从个性化设置存储区中移除单个用户状态

  1. 在仅供管理员使用的 Web 应用程序部分(例如 ASP.NET 页或用户控件)中,创建一组控件,以接收用户输入并将其发送到服务器。

    此过程中的示例使用 TextBox 控件和 Button 控件。

  2. 在适当的事件处理程序中,使用到所述 Web 应用程序的相对路径和用户名来调用 PersonalizationAdministration.ResetUserState 方法作为参数,如下面的示例所示。

    Protected Sub btnClear_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        ' Verify that the text box txtUser is not empty.
        If (txtUser.Text.Length < 1) Then
            Response.Write("You must enter a user name.")
        End If
        Return
    
        ' Reset the user.
        If (Not PersonalizationAdministration.ResetUserState("~/Default.aspx", txtUser.Text)) Then
            Response.Write("The user could not be found or the user has not personalized this page.")
        End If
    End Sub
    
    protected void btnClear_Click(object sender, EventArgs e)
    {
        // Verify that the text box is not empty.
        if (txtUser.Text.Length < 1)
        {
            Response.Write("You must enter a user name.");
            return;
        }
    
        // Reset the user.
        if (! PersonalizationAdministration.ResetUserState("~/Default.aspx", txtUser.Text))
        {
            Response.Write("The user could not be found or the user has not personalized this page");
        }
    }
    

从个性化设置存储区中移除用户组

  1. 在仅供管理员使用的 Web 应用程序部分中,创建一组控件,以接收用户输入并将其发送到服务器。

    此过程中的示例使用 TextBox 控件和 Button 控件。

  2. 在适当的事件处理程序中,使用到所述 Web 应用程序的相对路径和用户名列表来调用 PersonalizationAdministration.ResetUserState 方法作为参数,如下面的示例所示。

    Protected Sub btnClearList_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        ' Verify that the text box is not empty.
        If (txtUser.Text.Length < 1) Then
            Response.Write("You must enter at least one user name.")
            Return
        End If
    
        ' Extract the list of users.
        Dim users As Array
        users = txtUserList.Text.Split(" ,;".ToCharArray())
    
        ' Reset the users.
        Dim RowsReset As Integer
        RowsReset = PersonalizationAdministration.ResetUserState("~/Default.aspx", users)
        Response.Write(RowsReset + "of " + users.Length + " users found and removed.")
    End Sub
    
    protected void btnClearList_Click(object sender, EventArgs e)
    {
        // Verify that the text box is not empty.
        if (txtUser.Text.Length < 1)
        {
            Response.Write("You must enter at least one user name.");
            return;
        }
    
        // Reset the users.
        string[] users = txtUserList.Text.Split(" ,;".ToCharArray());
        int RowsReset = PersonalizationAdministration.ResetUserState("~/Default.aspx", users);
        Response.Write(RowsReset + "of " + users.Length + " users found and removed.");
    }
    

从个性化设置存储区中移除所有非活动用户

  1. 在仅供管理员使用的 Web 应用程序部分中,创建 CalendarButton 控件。

  2. 在适当的事件处理程序中,使用到所述 Web 应用程序的相对路径和用户名列表来调用 PersonalizationAdministration.ResetInactiveUserState 方法作为参数,如下面的示例所示。

    Protected Sub btnClearInactive_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        ' Verify that a date is selected.
        If (calInactive.SelectedDate = DateTime.MinValue) Then
            Response.Write("You must select a date.")
            Return
        End If
    
        ' Reset all users inactive since the selected date.
        Dim RowsReset As Integer
        RowsReset = PersonalizationAdministration.ResetInactiveUserState("~/Default.aspx", calInactive.SelectedDate)
        Response.Write(RowsReset + " inactive users removed.")
    End Sub
    
    protected void btnClearInactive_Click(object sender, EventArgs e)
    {
        // Verify that a date is selected.
        if (calInactive.SelectedDate == DateTime.MinValue)
        {
            Response.Write("You must select a date.");
            return;
        }
    
        // Reset all users inactive since the selected date.
        int RowsReset = PersonalizationAdministration.ResetInactiveUserState("~/Default.aspx", calInactive.SelectedDate);
        Response.Write(RowsReset + " inactive users removed.");
    }
    

请参见

任务

如何:使用户能够清除个性化设置状态

参考

System.Web.UI.WebControls.WebParts

PersonalizationAdministration

其他资源

ASP.NET Web 部件控件