WebPartPersonalization Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Implementiert Personalisierungsoperationen auf niedriger Ebene.
public ref class WebPartPersonalization
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))]
public class WebPartPersonalization
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))>]
type WebPartPersonalization = class
Public Class WebPartPersonalization
- Vererbung
-
WebPartPersonalization
- Attribute
Beispiele
Das folgende Codebeispiel zeigt, wie die WebPartPersonalization -Klasse verwendet wird, sowie ein Beispiel dafür, wie sich der Personalisierungsbereich auf die Ergebnisse personalisierter Eigenschaften auswirkt. Dieses Beispiel enthält fünf Dateien:
Eine .aspx Seite, die deklarativ zwei Webpartzonen mit jeweils einem -Steuerelement erstellt.
Ein Benutzersteuerelement namens
Color.ascx
, das es einem Benutzer ermöglicht, eine personalisierte Eigenschaft zu ändern, die eine Textfeld-Hintergrundfarbe basierend auf den Autorisierungsrechten des Benutzers anwendet, um Zustandsinformationen zu ändern und freigegebenen Bereich zu betreten.Ein Benutzersteuerelement namens
Persmode.ascx
, das angibt, was der aktuelle Seitenbereich ist und welche Rechte der aktuelle Benutzer hat, um freigegebenen Bereich einzugeben oder Daten zu ändern. Es bietet auch zwei Schaltflächen: eine zum Ändern des Bereichs und eine zum Zurücksetzen der aktuellen Benutzerpersonalisierungsinformationen.Ein Anmeldesteuerelement, das zum Autorisieren von Benutzern verwendet wird.
Eine Web.config Datei mit einem Abschnitt, der ein Beispiel für die Autorisierung eines Benutzers zum Ändern des Personalisierungszustands und zum Eingeben des freigegebenen Bereichs enthält.
Der folgende Code erstellt eine ASPX-Seite mit einer WebPartManager und zwei Webpartzonen und zeigt die Color.ascx
Steuerelemente und Persmode.ascx
an. Die Seite lädt eine Anmeldeseite, die zum Abrufen der aktuellen Benutzerinformationen verwendet wird. Verwenden Sie das ASP.NET-Websiteverwaltungstool in Microsoft Visual Studio 2005, um Benutzer für den Zugriff auf die Seite zu erstellen. In der datei Web.config finden Sie ein Beispiel für einen Benutzer, dem die Autorisierung in der Konfigurationsdatei gewährt wurde, um den Bereich zu ändern und Zustandsinformationen zu ändern.
<%@ Page Language="C#" %>
<%@ Register TagPrefix="control" TagName="colorcontrol" Src="~/color.ascx"%>
<%@Register TagPrefix="pmode" TagName="persmode" Src="~/persMode.ascx" %>
<!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">
<!-- Create Web Part manager and zone for the color user control. -->
<asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server" HeaderText="Color Change Zone">
<ZoneTemplate>
<!-- Note that the control is Shared since it is declared on the page. -->
<control:colorcontrol id="color1" title="Color Control" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
<br />
<!-- Create Web Part zone for the personalization mode user control. -->
<asp:WebPartZone ID="WebPartZone2" runat="server" HeaderText="Scope Change Zone" Height="109px">
<ZoneTemplate>
<pmode:persmode ID="Persmode1" runat="server" title="Scope Tool"/>
</ZoneTemplate>
</asp:WebPartZone>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Register TagPrefix="control" TagName="colorcontrol" Src="~/color.ascx"%>
<%@Register TagPrefix="pmode" TagName="persmode" Src="~/persMode.ascx" %>
<!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">
<!-- Create Web Part manager and zone for the color user control. -->
<asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server" HeaderText="Color Change Zone">
<ZoneTemplate>
<!-- Note that the control is Shared since it is declared on the page. -->
<control:colorcontrol id="color1" title="Color Control" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
<br />
<!-- Create Web Part zone for the personalization mode user control. -->
<asp:WebPartZone ID="WebPartZone2" runat="server" HeaderText="Scope Change Zone" Height="109px">
<ZoneTemplate>
<pmode:persmode ID="Persmode1" runat="server" title="Scope Tool"/>
</ZoneTemplate>
</asp:WebPartZone>
</form>
</body>
</html>
Der folgende Beispielcode erstellt eine Anmeldeseite. Nach einer erfolgreichen Anmeldung wird zur Aspx-Hauptseite umgeleitet.
Wichtig
Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<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="Login1" runat="server" BorderWidth="1px" BorderColor="#E6E2D8" BorderPadding="4"
BorderStyle="Solid" BackColor="#F7F6F3" ForeColor="#333333" Font-Names="Verdana"
Font-Size="0.8em" DestinationPageUrl="~/Defaultcs.aspx">
<InstructionTextStyle ForeColor="Black" Font-Italic="True" Font-Size="0.8em" />
<LoginButtonStyle Font-Names="Verdana" Font-Size="0.8em" BorderStyle="Solid" BorderWidth="1px"
BorderColor="#CCCCCC" BackColor="#FFFBFF" ForeColor="#284775" />
<TextBoxStyle Font-Size="0.8em" />
<LabelStyle Font-Size="0.8em" />
<TitleTextStyle ForeColor="White" Font-Size="0.9em" Font-Bold="True" BackColor="#5D7B9D" />
<HyperLinkStyle Font-Size="0.8em" />
<CheckBoxStyle Font-Size="0.8em" />
<FailureTextStyle ForeColor="#FF0000" Font-Size="0.8em" />
</asp:Login>
You can create new users with the ASP.NET Web Site Administration Tool in Microsoft Visual Studio 2005.
See also the web.config file for user authorization examples.
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<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="Login1" runat="server" BorderWidth="1px" BorderColor="#E6E2D8" BorderPadding="4"
BorderStyle="Solid" BackColor="#F7F6F3" ForeColor="#333333" Font-Names="Verdana"
Font-Size="0.8em" DestinationPageUrl="~/Defaultvb.aspx">
<InstructionTextStyle ForeColor="Black" Font-Italic="True" Font-Size="0.8em" />
<LoginButtonStyle Font-Names="Verdana" Font-Size="0.8em" BorderStyle="Solid" BorderWidth="1px"
BorderColor="#CCCCCC" BackColor="#FFFBFF" ForeColor="#284775" />
<TextBoxStyle Font-Size="0.8em" />
<LabelStyle Font-Size="0.8em" />
<TitleTextStyle ForeColor="White" Font-Size="0.9em" Font-Bold="True" BackColor="#5D7B9D" />
<HyperLinkStyle Font-Size="0.8em" />
<CheckBoxStyle Font-Size="0.8em" />
<FailureTextStyle ForeColor="#FF0000" Font-Size="0.8em" />
</asp:Login>
You can create new users with the ASP.NET Web Site Administration Tool in Microsoft Visual Studio 2005.
See also the web.config file for user authorization examples.
</div>
</form>
</body>
</html>
Der folgende Beispielcode ist ein Teil der Web.config-Datei für diese Anwendung. In diesem Abschnitt wird gezeigt, wie Sie die Autorisierung für einen Benutzer (in diesem Fall "user2") festlegen, um den freigegebenen Personalisierungsbereich einzugeben und Personalisierungsstatusinformationen zu ändern. Es zeigt auch ein Beispiel für eine Rolle, in diesem Fall "administrator", die verwendet werden kann, um Benutzern in der Rolle "administrator" das Eingeben des freigegebenen Personalisierungsbereichs und das Ändern von Personalisierungsstatusinformationen zu ermöglichen.
<webParts>
<personalization defaultProvider="AspNetSqlPersonalizationProvider">
<authorization>
<allow users="user2" verbs="enterSharedScope, modifyState"/>
<allow roles="admin" verbs="enterSharedScope, modifyState"/>
</authorization>
</personalization>
</webParts>
<webParts>
<personalization defaultProvider="AspNetSqlPersonalizationProvider">
<authorization>
<allow users="user2" verbs="enterSharedScope, modifyState"/>
<allow roles="admin" verbs="enterSharedScope, modifyState"/>
</authorization>
</personalization>
</webParts>
Der folgende Beispielcode erstellt ein Benutzersteuerelement namens Color.ascx
, das es dem Benutzer ermöglicht, eine personalisierte Eigenschaft zu ändern, in diesem Fall die Hintergrundfarbe von zwei Textfeldern basierend auf dem aktuellen Personalisierungsbereich und den Autorisierungsrechten des Benutzers.
Wichtig
Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
<%@ Control Language="C#" %>
<script runat="server">
// User a field to reference the current WebPartManager.
private WebPartManager _manager;
// Defines personalized property for User scope. In this case, the property is
// the background color of the text box.
[Personalizable(PersonalizationScope.User)]
public System.Drawing.Color UserColorChoice
{
get
{
return _coloruserTextBox.BackColor;
}
set
{
_coloruserTextBox.BackColor = value;
}
}
// Defines personalized property for Shared scope. In this case, the property is
// the background color of the text box.
[Personalizable(PersonalizationScope.Shared) ]
public System.Drawing.Color SharedColorChoice
{
get
{
return _colorsharedTextBox.BackColor;
}
set
{
_colorsharedTextBox.BackColor = value;
}
}
void Page_Init(object sender, EventArgs e)
{
_manager = WebPartManager.GetCurrentWebPartManager(Page);
}
protected void Page_Load(object src, EventArgs e)
{
// If Web Parts manager scope is User, hide the button that changes shared control.
if (_manager.Personalization.Scope == PersonalizationScope.User)
{
_sharedchangeButton.Visible = false;
if (!_manager.Personalization.IsModifiable)
_userchangeButton.Enabled = false;
}
else
{
_sharedchangeButton.Visible = true;
if (!_manager.Personalization.IsModifiable)
{
_sharedchangeButton.Enabled = false;
_userchangeButton.Enabled = false;
}
}
}
// Changes color of the User text box background when button clicked by authorized user.
protected void _userButton_Click(object src, EventArgs e)
{
switch(_coloruserTextBox.BackColor.Name)
{
case "Red":
_coloruserTextBox.BackColor = System.Drawing.Color.Yellow;
break;
case "Yellow":
_coloruserTextBox.BackColor = System.Drawing.Color.Green;
break;
case "Green":
_coloruserTextBox.BackColor = System.Drawing.Color.Red;
break;
}
}
// Changes color of the Shared text box background when button clicked by authorized user.
protected void _sharedButton_Click(object src, EventArgs e)
{
switch (_colorsharedTextBox.BackColor.Name)
{
case "Red":
_colorsharedTextBox.BackColor = System.Drawing.Color.Yellow;
break;
case "Yellow":
_colorsharedTextBox.BackColor = System.Drawing.Color.Green;
break;
case "Green":
_colorsharedTextBox.BackColor = System.Drawing.Color.Red;
break;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WebParts Personalization Example</title>
</head>
<body>
<p>
<asp:LoginName ID="LoginName1" runat="server" BorderWidth="500" BorderStyle="none" />
<asp:LoginStatus ID="LoginStatus1" LogoutAction="RedirectToLoginPage" runat="server" />
</p>
<asp:Label ID="ScopeLabel" Text="Scoped Properties:" runat="server" Width="289px"></asp:Label>
<br />
<table style="width: 226px">
<tr>
<td>
<asp:TextBox ID="_coloruserTextBox" Font-Bold="True" Height="110px"
runat="server" Text="User Property" BackColor="red" Width="110px" />
</td>
<td>
<asp:TextBox ID="_colorsharedTextBox" runat="server" Height="110px"
Width="110px" Text="Shared Property" BackColor="red" Font-Bold="true" />
</td>
</tr>
<tr>
<td>
<asp:Button Text="Change User Color" ID="_userchangeButton"
runat="server" OnClick="_userButton_Click" />
</td>
<td >
<asp:Button Text="Change Shared Color" ID="_sharedchangeButton"
runat="server" OnClick="_sharedButton_Click" />
</td>
</tr>
</table>
</body>
</html>
<%@ Control Language="VB" %>
<script runat="server">
' User a field to reference the current WebPartManager.
Private _manager As WebPartManager
' Defines personalized property for User scope. In this case, the property is
' the background color of the text box.
<Personalizable(PersonalizationScope.User)> _
Public Property UserColorChoice() As System.Drawing.Color
Get
Return _coloruserTextBox.BackColor
End Get
Set
_coloruserTextBox.BackColor = value
End Set
End Property
' Defines personalized property for Shared scope. In this case, the property is
' the background color of the text box.
<Personalizable(PersonalizationScope.Shared)> _
Public Property SharedColorChoice() As System.Drawing.Color
Get
Return _colorsharedTextBox.BackColor
End Get
Set
_colorsharedTextBox.BackColor = value
End Set
End Property
Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
_manager = WebPartManager.GetCurrentWebPartManager(Page)
End Sub 'Page_Init
Protected Sub Page_Load(ByVal src As Object, ByVal e As EventArgs)
' If Web Parts manager scope is User, hide the button that changes shared control.
If _manager.Personalization.Scope = PersonalizationScope.User Then
_sharedchangeButton.Visible = False
If Not _manager.Personalization.IsModifiable Then
_userchangeButton.Enabled = False
End If
Else
_sharedchangeButton.Visible = True
If Not _manager.Personalization.IsModifiable Then
_sharedchangeButton.Enabled = False
_userchangeButton.Enabled = False
End If
End If
End Sub 'Page_Load
' Changes color of the User text box background when button clicked by authorized user.
Protected Sub _userButton_Click(ByVal src As Object, ByVal e As EventArgs)
Select Case _coloruserTextBox.BackColor.Name
Case "Red"
_coloruserTextBox.BackColor = System.Drawing.Color.Yellow
Case "Yellow"
_coloruserTextBox.BackColor = System.Drawing.Color.Green
Case "Green"
_coloruserTextBox.BackColor = System.Drawing.Color.Red
End Select
End Sub '_userButton_Click
' Changes color of the Shared text box background when button clicked by authorized user.
Protected Sub _sharedButton_Click(ByVal src As Object, ByVal e As EventArgs)
Select Case _colorsharedTextBox.BackColor.Name
Case "Red"
_colorsharedTextBox.BackColor = System.Drawing.Color.Yellow
Case "Yellow"
_colorsharedTextBox.BackColor = System.Drawing.Color.Green
Case "Green"
_colorsharedTextBox.BackColor = System.Drawing.Color.Red
End Select
End Sub '_sharedButton_Click
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WebParts Personalization Example</title>
</head>
<body>
<p>
<asp:LoginName ID="LoginName1" runat="server" BorderWidth="500" BorderStyle="none" />
<asp:LoginStatus ID="LoginStatus1" LogoutAction="RedirectToLoginPage" runat="server" />
</p>
<asp:Label ID="ScopeLabel" Text="Scoped Properties:" runat="server" Width="289px"></asp:Label>
<br />
<table style="width: 226px">
<tr>
<td>
<asp:TextBox ID="_coloruserTextBox" Font-Bold="True" Height="110px"
runat="server" Text="User Property" BackColor="red" Width="110px" />
</td>
<td>
<asp:TextBox ID="_colorsharedTextBox" runat="server" Height="110px"
Width="110px" Text="Shared Property" BackColor="red" Font-Bold="true" />
</td>
</tr>
<tr>
<td>
<asp:Button Text="Change User Color" ID="_userchangeButton"
runat="server" OnClick="_userButton_Click" />
</td>
<td >
<asp:Button Text="Change Shared Color" ID="_sharedchangeButton"
runat="server" OnClick="_sharedButton_Click" />
</td>
</tr>
</table>
</body>
</html>
Der folgende Beispielcode erstellt ein Benutzersteuerelement namens Persmode.ascx
, das den aktuellen Personalisierungsbereich und die Benutzerrechte zum Ändern des Zustands und zum Eingeben des freigegebenen Bereichs anzeigt. Es verfügt auch über eine Schaltfläche zum Zurücksetzen des aktuellen Personalisierungszustands.
<%@ control language="C#" %>
<script runat="server">
// Use a field to reference the current WebPartManager.
private WebPartManager _manager;
protected void Page_Load(object src, EventArgs e)
{
// Get the current Web Parts manager.
_manager = WebPartManager.GetCurrentWebPartManager(Page);
// All radio buttons are disabled; the button settings show what the current state is.
EnterSharedRadioButton.Enabled = false;
ModifyStateRadioButton.Enabled = false;
// If Web Parts manager is in User scope, set scope button.
if (_manager.Personalization.Scope == PersonalizationScope.User)
UserScopeRadioButton.Checked = true;
else
SharedScopeRadioButton.Checked = true;
// Based on current user rights to enter Shared scope, set buttons.
if (_manager.Personalization.CanEnterSharedScope)
{
EnterSharedRadioButton.Checked = true;
No_Shared_Scope_Label.Visible = false;
Toggle_Scope_Button.Enabled = true;
}
else
{
EnterSharedRadioButton.Checked = false;
No_Shared_Scope_Label.Visible = true;
Toggle_Scope_Button.Enabled = false;
}
// Based on current user rights to modify personalization state, set buttons.
if (_manager.Personalization.IsModifiable)
{
ModifyStateRadioButton.Checked = true;
Reset_User_Button.Enabled = true;
}
else
{
ModifyStateRadioButton.Checked = false;
Reset_User_Button.Enabled = false;
}
}
// <snippet6>
// Resets all of a user and shared personalization data for the page.
protected void Reset_CurrentState_Button_Click(object src, EventArgs e)
{
// User must be authorized to modify state before a reset can occur.
//When in user scope, all users by default can change their own data.
if (_manager.Personalization.IsModifiable)
{
_manager.Personalization.ResetPersonalizationState();
}
}
// </snippet6>
// <snippet7>
// Allows authorized user to change personalization scope.
protected void Toggle_Scope_Button_Click(object sender, EventArgs e)
{
if (_manager.Personalization.CanEnterSharedScope)
{
_manager.Personalization.ToggleScope();
}
}
// </snippet7>
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="208px"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" Height="214px" >
<asp:Label ID="Label1" runat="server"
Text="Page Scope"
Font-Bold="True"
Font-Size="8pt"
Width="120px" /> <br />
<asp:RadioButton ID="UserScopeRadioButton" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<asp:RadioButton ID="SharedScopeRadioButton" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<br />
<asp:Label BorderStyle="None" Font-Bold="True" Font-Names="Courier New" ID="No_Shared_Scope_Label" Font-Size="Smaller" ForeColor="red"
runat="server" Visible="false" Width="179px">User cannot enter Shared scope</asp:Label>
<br />
<asp:Label ID="Label2" runat="server"
Text="Current User Can:"
Font-Bold="True"
Font-Size="8pt"
Width="165px" />
<br />
<asp:RadioButton ID="ModifyStateRadioButton" runat="server"
Text="Modify State" Width="138px" />
<br />
<asp:RadioButton ID="EnterSharedRadioButton" runat="server"
Text="Enter Shared Scope"
AutoPostBack="true" /> <br />
<br />
<asp:Button ID="Toggle_Scope_Button" OnClick="Toggle_Scope_Button_Click" runat="server"
Text="Change Scope" Width="186px" /><br />
<br />
<asp:Button ID="Reset_User_Button" OnClick="Reset_CurrentState_Button_Click" runat="server"
Text="Reset Current Personalization" Width="185px" /></asp:Panel>
</div>
<%@ control language="VB" %>
<script runat="server">
' Use a field to reference the current WebPartManager.
Private _manager As WebPartManager
Protected Sub Page_Load(ByVal src As Object, ByVal e As EventArgs)
' Get the current Web Parts manager.
_manager = WebPartManager.GetCurrentWebPartManager(Page)
' All radio buttons are disabled; the button settings show what the current state is.
EnterSharedRadioButton.Enabled = False
ModifyStateRadioButton.Enabled = False
' If Web Parts manager is in User scope, set scope button.
If _manager.Personalization.Scope = PersonalizationScope.User Then
UserScopeRadioButton.Checked = True
Else
SharedScopeRadioButton.Checked = True
End If
' Based on current user rights to enter Shared scope, set buttons.
If _manager.Personalization.CanEnterSharedScope Then
EnterSharedRadioButton.Checked = True
No_Shared_Scope_Label.Visible = False
Toggle_Scope_Button.Enabled = True
Else
EnterSharedRadioButton.Checked = False
No_Shared_Scope_Label.Visible = True
Toggle_Scope_Button.Enabled = False
End If
' Based on current user rights to modify personalization state, set buttons.
If _manager.Personalization.IsModifiable Then
ModifyStateRadioButton.Checked = True
Reset_User_Button.Enabled = True
Else
ModifyStateRadioButton.Checked = False
Reset_User_Button.Enabled = False
End If
End Sub 'Page_Load
' <snippet6>
' Resets all of a user and shared personalization data for the page.
Protected Sub Reset_CurrentState_Button_Click(ByVal src As Object, ByVal e As EventArgs)
' User must be authorized to modify state before a reset can occur.
'When in user scope, all users by default can change their own data.
If _manager.Personalization.IsModifiable Then
_manager.Personalization.ResetPersonalizationState()
End If
End Sub 'Reset_CurrentState_Button_Click
' </snippet6>
' <snippet7>
' Allows authorized user to change personalization scope.
Protected Sub Toggle_Scope_Button_Click(ByVal sender As Object, ByVal e As EventArgs)
If _manager.Personalization.CanEnterSharedScope Then
_manager.Personalization.ToggleScope()
End If
End Sub 'Toggle_Scope_Button_Click
' </snippet7>
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="208px"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" Height="214px" >
<asp:Label ID="Label1" runat="server"
Text="Page Scope"
Font-Bold="True"
Font-Size="8pt"
Width="120px" /> <br />
<asp:RadioButton ID="UserScopeRadioButton" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<asp:RadioButton ID="SharedScopeRadioButton" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<br />
<asp:Label BorderStyle="None" Font-Bold="True" Font-Names="Courier New" ID="No_Shared_Scope_Label" Font-Size="Smaller" ForeColor="red"
runat="server" Visible="false" Width="179px">User cannot enter Shared scope</asp:Label>
<br />
<asp:Label ID="Label2" runat="server"
Text="Current User Can:"
Font-Bold="True"
Font-Size="8pt"
Width="165px" />
<br />
<asp:RadioButton ID="ModifyStateRadioButton" runat="server"
Text="Modify State" Width="138px" />
<br />
<asp:RadioButton ID="EnterSharedRadioButton" runat="server"
Text="Enter Shared Scope"
AutoPostBack="true" /> <br />
<br />
<asp:Button ID="Toggle_Scope_Button" OnClick="Toggle_Scope_Button_Click" runat="server"
Text="Change Scope" Width="186px" /><br />
<br />
<asp:Button ID="Reset_User_Button" OnClick="Reset_CurrentState_Button_Click" runat="server"
Text="Reset Current Personalization" Width="185px" /></asp:Panel>
</div>
Hinweise
Diese Klasse implementiert die Logik, die zum Ausführen von Personalisierungsvorgängen auf niedrigerer Ebene erforderlich ist. Obwohl die WebPartManager Klasse den allgemeinen Lebenszyklus der Personalisierung verwaltet, ist sie für die WebPartPersonalization tatsächliche Implementierung der physischen Schritte verantwortlich, die zum Ausführen bestimmter Personalisierungsaktionen erforderlich sind. Die WebPartPersonalization -Klasse wiederum basiert auf einer Implementierung von, PersonalizationProvider um mit dem zugrunde liegenden Datenspeicher für Personalisierungsinformationen zu kommunizieren.
Wenn Sie die Standardimplementierung von WebPartManagerverwenden, wird eine Instanz der -Klasse erstellt, die WebPartPersonalization Sie verwenden können, indem Sie auf die Personalization -Eigenschaft verweisen. Wenn Sie beispielsweise auf die InitialScope -Eigenschaft zugreifen möchten, geben Sie an WebPartManager.Personalization.InitialScope
.
Hinweise für Vererber
Die WebPartPersonalization -Klasse arbeitet eng mit einem WebPartManager Steuerelement und dem Rest der Personalisierungsinfrastruktur zusammen. Die Standardimplementierung der Personalisierung ist ein sehr robustes Subsystem, das Ihre Personalisierungsanforderungen erfüllen sollte. Wenn Sie die Personalisierung anpassen möchten, können Sie in den meisten Fällen einen Datenanbieter für die Verwendung als Personalisierungsanbieter erstellen, indem Sie eine Klasse erstellen, die von PersonalizationProvidererbt.
Wenn Sie ein Personalisierungssubsystem erstellen möchten, das sich erheblich von dem von und WebPartPersonalization den WebPartManager Klassen unterscheidet, sollten Sie eine benutzerdefinierte WebPartPersonalization Implementierung erstellen, indem Sie von WebPartPersonalization ableiten und Ihre eigene benutzerdefinierte Logik hinzufügen. Erstellen Sie dann eine benutzerdefinierte WebPartManager Implementierung, indem Sie von abgeleitet werden WebPartManager, fügen Sie Ihre eigene benutzerdefinierte Logik hinzu, und überschreiben Sie die CreatePersonalization() -Methode, um ihre benutzerdefinierte WebPartPersonalization Implementierung zurückzugeben. Da ein WebPartManager Steuerelement Anforderungen an die Personalisierungsinfrastruktur über eine WebPartPersonalization Instanz sendet, interagiert das WebPartManager Steuerelement nicht direkt mit Implementierungen oder enthält Verweise auf PersonalizationProvider implementierungen.
Konstruktoren
WebPartPersonalization(WebPartManager) |
Initialisiert eine neue Instanz der WebPartPersonalization-Klasse. |
Felder
EnterSharedScopeUserCapability |
Stellt die WebPartUserCapability-Instanz der Autorisierung eines Benutzers für den Zugriff auf den Shared-Bereich dar. |
ModifyStateUserCapability |
Stellt die WebPartUserCapability-Instanz der Autorisierung eines Benutzers zum Ändern des Personalisierungszustands dar. |
Eigenschaften
CanEnterSharedScope |
Gibt einen Wert zurück, der angibt, ob der Benutzer befugt ist, auf den Shared-Bereich zuzugreifen. |
Enabled |
Gibt einen Wert zurück, der angibt, ob die Personalisierung für das zugeordnete WebPartManager-Steuerelement aktiviert werden muss. |
HasPersonalizationState |
Gibt einen Wert zurück, der angibt, ob der aktuellen Seite und dem Personalisierungsbereich Personalisierungsdaten zugeordnet sind. |
InitialScope |
Ruft den aktuellen Standardpersonalisierungsbereich ab oder legt diesen fest. |
IsEnabled |
Ruft einen Wert ab, der angibt, ob die Personalisierung aktiviert ist und ob Personalisierungsdaten für diese Instanz der WebPartPersonalization-Klasse erfolgreich geladen wurden. |
IsInitialized |
Ruft einen Wert ab, der angibt, ob die Personalisierung aktiviert ist und ob Personalisierungsdaten für diese Instanz der WebPartPersonalization-Klasse erfolgreich geladen wurden. |
IsModifiable |
Ruft einen Wert ab, der angibt, ob der aktuelle Benutzer befugt ist, Zustandsinformationen zu ändern. |
ProviderName |
Ruft den Anbieternamen für die Personalisierung ab oder legt diesen fest. |
Scope |
Ruft den aktuellen Personalisierungsbereich für das übergeordnete WebPartManager-Steuerelement ab. |
ShouldResetPersonalizationState |
Ruft einen Wert ab, der angibt, ob die Personalisierungsdaten der aktuellen Seite zurückgesetzt wurden, oder legt diesen fest (wenn beispielsweise eine Anforderung zum Löschen der Personalisierungsdaten aus dem zugrunde liegenden Datenspeicher gestellt wurde). |
UserCapabilities |
Ruft den Satz der für den aktuellen Benutzer verfügbaren Benutzerfunktionen aus WebPartUserCapability ab. |
WebPartManager |
Ruft eine Instanz des aktuellen übergeordneten WebPartManager-Steuerelements ab, das dieser WebPartPersonalization-Instanz zugeordnet ist. |
Methoden
ApplyPersonalizationState() |
Wendet Personalisierungsdaten auf das übergeordnete WebPartManager-Steuerelement an. |
ApplyPersonalizationState(WebPart) |
Wendet Personalisierungsdaten auf das angegebene WebPart-Steuerelement an, wenn eine entsprechende Anforderung durch das übergeordnete WebPartManager-Steuerelement gestellt wurde. |
ChangeScope(PersonalizationScope) |
Ändert die PersonalizationScope-Instanz der aktuellen Seite auf den angegebenen Bereich. |
CopyPersonalizationState(WebPart, WebPart) |
Extrahiert den Personalisierungszustand aus einem Webparts-Steuerelement und wendet diesen auf ein zweites Webparts-Steuerelement an. |
EnsureEnabled(Boolean) |
Stellt sicher, dass die WebPartPersonalization-Instanz die Initialisierung abgeschlossen hat, oder dass der aktuelle Benutzer die erforderliche Berechtigung zum Bearbeiten von Personalisierungszuständen besitzt. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
ExtractPersonalizationState() |
Extrahiert Personalisierungsdaten aus dem übergeordneten WebPartManager-Steuerelement. |
ExtractPersonalizationState(WebPart) |
Extrahiert Personalisierungsdaten aus einem Webparts-Steuerelement, wenn eine entsprechende Anforderung durch das übergeordnete WebPartManager-Steuerelement gestellt wurde. |
GetAuthorizationFilter(String) |
Ruft gegebenenfalls den Autorisierungsfilter ab, der dem angegebenen Webparts-Steuerelement zugeordnet ist. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
Load() |
Initialisiert die Personalisierung. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ResetPersonalizationState() |
Setzt Personalisierungsdaten für die aktuelle Seite, den aktuellen Bereich und den aktuellen Benutzer im zugrunde liegenden Datenspeicher zurück. |
Save() |
Speichert Personalisierungsdaten für die aktuelle Seite, den aktuellen Bereich und den aktuellen Benutzer im zugrunde liegenden Datenspeicher. |
SetDirty() |
Markiert das übergeordnete WebPartManager-Steuerelement und gibt dadurch an, dass Personalisierungsdaten "geändert" wurden. |
SetDirty(WebPart) |
Markiert das übergeordnete Webparts-Steuerelement und gibt dadurch an, dass Personalisierungsdaten "geändert" wurden. |
ToggleScope() |
Schaltet den Personalisierungsbereich der aktuellen Seite von User auf Shared oder von Shared auf User um. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |