How to: Remove User Entries from the Personalization Store
In an ASP.NET Web application that uses personalization, there are some circumstances in which you might need to remove entries from the personalization store. How to: Enable Users to Clear Personalization State shows the simplest approach, which is to expose the ResetPersonalizationState method through a control on the page so that individual users can remove all personalization data that pertains to them. However, if you need to manage personalization data of other, multiple users, you must use the various methods of the PersonalizationAdministration class.
Note
Only administrators of the page should be granted access to the methods of the PersonalizationAdministration class.
To remove an individual user state from the personalization store
In a part of the Web application that is available only to administrators, such as an ASP.NET page or a user control, create a set of controls to receive user input and send it to the server.
The example in this procedure uses a TextBox control and a Button control.
In the appropriate event handler, call the PersonalizationAdministration..::.ResetUserState method with the relative path to the Web application in question and the user name as parameters, as shown in the following example.
ProtectedSub btnClear_Click(ByVal sender AsObject, 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.") EndIfReturn ' 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.") EndIfEndSub
protectedvoid 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"); } }
To remove a group of users from the personalization store
In a part of the Web application that is available only to administrators, create a set of controls to receive user input and send it to the server.
The example in this procedure uses a TextBox control and a Button control.
In the appropriate event handler, call the PersonalizationAdministration..::.ResetUserState method with the relative path to the Web application in question and a list of user names as parameters, as shown in the following example.
ProtectedSub btnClearList_Click(ByVal sender AsObject, 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.") ReturnEndIf ' Extract the list of users.Dim users As Array users = txtUserList.Text.Split(" ,;".ToCharArray()) ' Reset the users.Dim RowsReset AsInteger RowsReset = PersonalizationAdministration.ResetUserState("~/Default.aspx", users) Response.Write(RowsReset + "of " + users.Length + " users found and removed.") EndSub
protectedvoid 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."); }
To remove all inactive users from the personalization store
In a part of the Web application that is only available to administrators, create a Calendar and a Button control.
In the appropriate event handler, call the PersonalizationAdministration..::.ResetInactiveUserState method with the relative path to the Web application in question and a list of user names as parameters, as shown in the following example.
ProtectedSub btnClearInactive_Click(ByVal sender AsObject, ByVal e As System.EventArgs) ' Verify that a date is selected.If (calInactive.SelectedDate = DateTime.MinValue) Then Response.Write("You must select a date.") ReturnEndIf ' Reset all users inactive since the selected date.Dim RowsReset AsInteger RowsReset = PersonalizationAdministration.ResetInactiveUserState("~/Default.aspx", calInactive.SelectedDate) Response.Write(RowsReset + " inactive users removed.") EndSub
protectedvoid 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."); }
See Also
Tasks
How to: Enable Users to Clear Personalization State
Reference
System.Web.UI.WebControls.WebParts