Membership.GetUser Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient les informations sur un utilisateur d'appartenance à partir de la source de données.
Surcharges
GetUser(String, Boolean) |
Obtient de la source de données les informations sur l'utilisateur d'appartenance spécifié. Met à jour les informations de date et d'heure de dernière activité de l'utilisateur, le cas échéant. |
GetUser(Object, Boolean) |
Obtient de la source de données les informations sur l'utilisateur d'appartenance associé à l'identificateur unique spécifié. Met à jour les informations de date et d'heure de dernière activité de l'utilisateur, le cas échéant. |
GetUser(String) |
Obtient de la source de données les informations sur l'utilisateur d'appartenance spécifié. |
GetUser(Boolean) |
Obtient de la source de données les informations sur l'utilisateur d'appartenance connecté. Met à jour les informations de date et d'heure de dernière activité pour l'utilisateur d'appartenance connecté, le cas échéant. |
GetUser() |
Obtient les informations de la source de données et met à jour les informations de date et d'heure de dernière activité pour l'utilisateur d'appartenance connecté. |
GetUser(Object) |
Obtient de la source de données les informations sur l'utilisateur d'appartenance associé à l'identificateur unique spécifié. |
GetUser(String, Boolean)
Obtient de la source de données les informations sur l'utilisateur d'appartenance spécifié. Met à jour les informations de date et d'heure de dernière activité de l'utilisateur, le cas échéant.
public:
static System::Web::Security::MembershipUser ^ GetUser(System::String ^ username, bool userIsOnline);
public static System.Web.Security.MembershipUser GetUser (string username, bool userIsOnline);
static member GetUser : string * bool -> System.Web.Security.MembershipUser
Public Shared Function GetUser (username As String, userIsOnline As Boolean) As MembershipUser
Paramètres
- username
- String
Nom de l'utilisateur à récupérer.
- userIsOnline
- Boolean
Si sa valeur est true
, met à jour les informations de date et d'heure de dernière activité pour l'utilisateur spécifié.
Retours
Objet MembershipUser représentant l'utilisateur spécifié. Si le paramètre username
ne correspond pas à un utilisateur existant, cette méthode retourne null
.
Exceptions
username
contient une virgule (,).
username
a la valeur null
.
Exemples
L’exemple de code suivant récupère le mot de passe d’un nom d’utilisateur spécifié et l’envoie à l’adresse e-mail de l’utilisateur spécifié. L’appel à GetUser spécifie que l’horodatage de la dernière activité de l’utilisateur n’est pas mis à jour.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Net.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Page_Load(object sender, EventArgs args)
{
if (!Membership.EnablePasswordRetrieval)
{
FormsAuthentication.RedirectToLoginPage();
}
Msg.Text = "";
if (!IsPostBack)
{
Msg.Text = "Please enter a user name.";
}
else
{
VerifyUsername();
}
}
public void VerifyUsername()
{
MembershipUser user = Membership.GetUser(UsernameTextBox.Text, false);
if (user == null)
{
Msg.Text = "The user name " + Server.HtmlEncode(UsernameTextBox.Text) + " was not found. Please check the value and re-enter.";
QuestionLabel.Text = "";
QuestionLabel.Enabled = false;
AnswerTextBox.Enabled = false;
EmailPasswordButton.Enabled = false;
}
else
{
QuestionLabel.Text = user.PasswordQuestion;
QuestionLabel.Enabled = true;
AnswerTextBox.Enabled = true;
EmailPasswordButton.Enabled = true;
}
}
public void EmailPassword_OnClick(object sender, EventArgs args)
{
// Note: Returning a password in clear text using email is not recommended for
// sites that require a high level of security.
try
{
string password = Membership.Provider.GetPassword(UsernameTextBox.Text, AnswerTextBox.Text);
MembershipUser u = Membership.GetUser(UsernameTextBox.Text);
EmailPassword(u.Email, password);
Msg.Text = "Your password was sent via email.";
}
catch (MembershipPasswordException e)
{
Msg.Text = "The password answer is incorrect. Please check the value and try again.";
}
catch (System.Configuration.Provider.ProviderException e)
{
Msg.Text = "An error occurred retrieving your password. Please check your values " +
"and try again.";
}
}
private void EmailPassword(string email, string password)
{
try
{
MailMessage Message = new MailMessage("administrator", email);
Message.Subject = "Your Password";
Message.Body = "Your password is: " + Server.HtmlEncode(password);
SmtpClient SmtpMail = new SmtpClient("SMTPSERVER");
SmtpMail.Send(Message);
}
catch
{
Msg.Text = "An exception occurred while sending your password. Please try again.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Password</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Retrieve Password</h3>
<asp:Label id="Msg" runat="server" ForeColor="maroon" /><br />
Username: <asp:Textbox id="UsernameTextBox" Columns="30" runat="server" AutoPostBack="true" />
<asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server"
ControlToValidate="UsernameTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" /><br />
Password Question: <b><asp:Label id="QuestionLabel" runat="server" /></b><br />
Answer: <asp:TextBox id="AnswerTextBox" Columns="60" runat="server" Enabled="false" />
<asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
ControlToValidate="AnswerTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" Enabled="false" /><br />
<asp:Button id="EmailPasswordButton" Text="Email My Password"
OnClick="EmailPassword_OnClick" runat="server" Enabled="false" />
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Net.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs)
If Not Membership.EnablePasswordRetrieval Then
FormsAuthentication.RedirectToLoginPage()
End If
Msg.Text = ""
If Not IsPostBack Then
Msg.Text = "Please enter a user name."
Else
VerifyUsername()
End If
End Sub
Private Sub VerifyUsername()
Dim user As MembershipUser = Membership.GetUser(UsernameTextBox.Text, False)
If user Is Nothing Then
Msg.Text = "The user name " & Server.HtmlEncode(UsernameTextBox.Text) & " was not found. Please check the value and re-enter."
QuestionLabel.Text = ""
QuestionLabel.Enabled = False
AnswerTextBox.Enabled = False
EmailPasswordButton.Enabled = False
Else
QuestionLabel.Text = user.PasswordQuestion
QuestionLabel.Enabled = True
AnswerTextBox.Enabled = True
EmailPasswordButton.Enabled = True
End If
End Sub
Public Sub EmailPassword_OnClick(ByVal sender As Object, ByVal args As EventArgs)
' Note: Returning a password in clear text using email is not recommended for
' sites that require a high level of security.
Try
Dim password As String = Membership.Provider.GetPassword(UsernameTextBox.Text, AnswerTextBox.Text)
Dim u As MembershipUser = Membership.GetUser(UsernameTextBox.Text)
EmailPassword(u.Email, password)
Msg.Text = "Your password was sent via email."
Catch e As MembershipPasswordException
Msg.Text = "The password answer is incorrect. Please check the value and try again."
Catch e As System.Configuration.Provider.ProviderException
Msg.Text = "An error occurred retrieving your password. Please check your values " & _
"and try again."
End Try
End Sub
Private Sub EmailPassword(ByVal email As String, ByVal password As String)
Try
Dim Message As MailMessage = New MailMessage("administrator", email)
Message.Subject = "Your Password"
Message.Body = "Your password is: " & Server.HtmlEncode(password)
Dim SmtpMail As SmtpClient = New SmtpClient("SMTPSERVER")
SmtpMail.Send(Message)
Catch
Msg.Text = "An exception occurred while sending your password. Please try again."
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Password</title>
</head>
<body>
<form id="form1" runat="server">
<h3>
Retrieve Password</h3>
<asp:Label ID="Msg" runat="server" ForeColor="maroon" /><br />
Username:
<asp:TextBox ID="UsernameTextBox" Columns="30" runat="server" AutoPostBack="True" />
<asp:RequiredFieldValidator ID="UsernameRequiredValidator" runat="server" ControlToValidate="UsernameTextBox"
ForeColor="red" Display="Static" ErrorMessage="Required" /><br />
Password Question: <b>
<asp:Label ID="QuestionLabel" runat="server" /></b><br />
Answer:
<asp:TextBox ID="AnswerTextBox" Columns="60" runat="server" Enabled="False" />
<asp:RequiredFieldValidator ID="AnswerRequiredValidator" runat="server" ControlToValidate="AnswerTextBox"
ForeColor="red" Display="Static" ErrorMessage="Required" Enabled="False" /><br />
<asp:Button ID="EmailPasswordButton" Text="Email My Password" OnClick="EmailPassword_OnClick"
runat="server" Enabled="False" />
</form>
</body>
</html>
Remarques
La GetUser méthode récupère les informations utilisateur de la source de données et crée un MembershipUser objet rempli avec les données retournées.
Si vous utilisez l’une GetUser des surcharges qui ne prennent pas de username
paramètre, GetUser retourne les informations pour l’utilisateur d’appartenance actuellement connecté. L’utilisateur d’appartenance actuellement connecté est identifié par le Name de l’utilisateur dans le actuel HttpContext.
Vous pouvez également spécifier si vous souhaitez GetUser mettre à jour l’horodatage de la dernière activité pour l’utilisateur récupéré avec le userIsOnline
paramètre. Parmi les GetUser surcharges qui ne prennent pas de userIsOnline
paramètre, Membership.GetUser met à jour implicitement l’horodatage de la dernière activité pour l’utilisateur.
Membership.GetUser et GetUser pas.
Voir aussi
S’applique à
GetUser(Object, Boolean)
Obtient de la source de données les informations sur l'utilisateur d'appartenance associé à l'identificateur unique spécifié. Met à jour les informations de date et d'heure de dernière activité de l'utilisateur, le cas échéant.
public:
static System::Web::Security::MembershipUser ^ GetUser(System::Object ^ providerUserKey, bool userIsOnline);
public static System.Web.Security.MembershipUser GetUser (object providerUserKey, bool userIsOnline);
static member GetUser : obj * bool -> System.Web.Security.MembershipUser
Public Shared Function GetUser (providerUserKey As Object, userIsOnline As Boolean) As MembershipUser
Paramètres
- providerUserKey
- Object
Identificateur unique dans la source de données d'appartenance pour l'utilisateur.
- userIsOnline
- Boolean
Si sa valeur est true
, met à jour les informations de date et d'heure de dernière activité pour l'utilisateur spécifié.
Retours
Objet MembershipUser représentant l'utilisateur associé à l'identificateur unique spécifié.
Exceptions
providerUserKey
a la valeur null
.
Remarques
La GetUser méthode récupère les informations utilisateur de la source de données et crée un MembershipUser objet rempli avec les données retournées. L’utilisateur est identifié avec l’identificateur unique de la source de données spécifiée dans le providerUserKey
paramètre .
Voir aussi
S’applique à
GetUser(String)
Obtient de la source de données les informations sur l'utilisateur d'appartenance spécifié.
public:
static System::Web::Security::MembershipUser ^ GetUser(System::String ^ username);
public static System.Web.Security.MembershipUser GetUser (string username);
static member GetUser : string -> System.Web.Security.MembershipUser
Public Shared Function GetUser (username As String) As MembershipUser
Paramètres
- username
- String
Nom de l'utilisateur à récupérer.
Retours
Objet MembershipUser représentant l'utilisateur spécifié. Si le paramètre username
ne correspond pas à un utilisateur existant, cette méthode retourne null
.
Exceptions
username
contient une virgule (,).
username
a la valeur null
.
Exemples
L’exemple de code suivant utilise la GetUser méthode pour renvoyer un MembershipUser objet pour l’utilisateur actuellement connecté et met à jour l’adresse e-mail de l’utilisateur.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
MembershipUser u;
public void Page_Load(object sender, EventArgs args)
{
u = Membership.GetUser(User.Identity.Name);
if (!IsPostBack)
{
EmailTextBox.Text = u.Email;
}
}
public void UpdateEmailButton_OnClick(object sender, EventArgs args)
{
try
{
u.Email = EmailTextBox.Text;
Membership.UpdateUser(u);
Msg.Text = "User email updated.";
}
catch (System.Configuration.Provider.ProviderException e)
{
Msg.Text = e.Message;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Update User E-Mail</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Update E-Mail Address for <%=User.Identity.Name%></h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table cellpadding="3" border="0">
<tr>
<td>Email Address:</td>
<td><asp:TextBox id="EmailTextBox" MaxLength="128" Columns="30" runat="server" /></td>
<td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
ControlToValidate="EmailTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button id="UpdateEmailButton"
Text="Update Email"
OnClick="UpdateEmailButton_OnClick"
runat="server" /></td>
</tr>
</table>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim u As MembershipUser
Public Sub Page_Load(sender As Object, args As EventArgs)
u = Membership.GetUser(User.Identity.Name)
If Not IsPostBack Then EmailTextBox.Text = u.Email
End Sub
Public Sub UpdateEmailButton_OnClick(sender As Object, args As EventArgs)
Try
u.Email = EmailTextBox.Text
Membership.UpdateUser(u)
Msg.Text = "User email updated."
Catch e As System.Configuration.Provider.ProviderException
Msg.Text = e.Message
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Update User E-Mail</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Update E-Mail Address for <%=User.Identity.Name%></h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table cellpadding="3" border="0">
<tr>
<td>Email Address:</td>
<td><asp:TextBox id="EmailTextBox" MaxLength="128" Columns="30" runat="server" /></td>
<td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
ControlToValidate="EmailTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button id="UpdateEmailButton"
Text="Update Email"
OnClick="UpdateEmailButton_OnClick"
runat="server" /></td>
</tr>
</table>
</form>
</body>
</html>
Remarques
La GetUser méthode récupère les informations utilisateur de la source de données et crée un MembershipUser objet rempli avec les données retournées. Si vous utilisez l’une GetUser des surcharges qui ne prennent pas de username
paramètre, GetUser retourne les informations pour l’utilisateur d’appartenance actuellement connecté. L’utilisateur d’appartenance actuellement connecté est identifié par le Name de l’utilisateur dans le actuel HttpContext.
Vous pouvez également spécifier si vous souhaitez GetUser mettre à jour l’horodatage de la dernière activité pour l’utilisateur récupéré avec le userIsOnline
paramètre. Parmi les GetUser surcharges qui ne prennent pas de userIsOnline
paramètre, Membership.GetUser met à jour implicitement l’horodatage de la dernière activité pour l’utilisateur.
Membership.GetUser et GetUser pas.
Voir aussi
S’applique à
GetUser(Boolean)
Obtient de la source de données les informations sur l'utilisateur d'appartenance connecté. Met à jour les informations de date et d'heure de dernière activité pour l'utilisateur d'appartenance connecté, le cas échéant.
public:
static System::Web::Security::MembershipUser ^ GetUser(bool userIsOnline);
public static System.Web.Security.MembershipUser GetUser (bool userIsOnline);
static member GetUser : bool -> System.Web.Security.MembershipUser
Public Shared Function GetUser (userIsOnline As Boolean) As MembershipUser
Paramètres
- userIsOnline
- Boolean
Si sa valeur est true
, met à jour les informations de date et d'heure de dernière activité pour l'utilisateur spécifié.
Retours
Un objet MembershipUser qui représente l'utilisateur connecté.
Exceptions
Aucun utilisateur d'appartenance ne se connecte actuellement.
Exemples
L’exemple de code suivant affiche le nom d’utilisateur de l’utilisateur d’appartenance actuellement connecté dans la page ASP.NET sans mettre à jour la date/heure de la dernière activité de l’utilisateur.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
MembershipUser currentUser;
public void Page_Load()
{
currentUser = Membership.GetUser(false);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>
<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>.
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim currentUser As MembershipUser
Public Sub Page_Load()
currentUser = Membership.GetUser(False)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>
<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>.
</form>
</body>
</html>
Remarques
La GetUser méthode récupère les informations utilisateur de la source de données et crée un MembershipUser objet rempli avec les données retournées. Si vous utilisez l’une GetUser des surcharges qui ne prennent pas de username
paramètre, GetUser retourne les informations pour l’utilisateur d’appartenance actuellement connecté. L’utilisateur d’appartenance actuellement connecté est identifié par le Name de l’utilisateur dans le actuel HttpContext.
Vous pouvez également spécifier si vous souhaitez GetUser mettre à jour l’horodatage de la dernière activité pour l’utilisateur récupéré à l’aide du userIsOnline
paramètre . Parmi les GetUser surcharges qui ne prennent pas de userIsOnline
paramètre, GetUser()
met à jour implicitement l’horodatage de la dernière activité pour l’utilisateur.
GetUser(System.String)
et GetUser(System.Object)
pas.
Voir aussi
S’applique à
GetUser()
Obtient les informations de la source de données et met à jour les informations de date et d'heure de dernière activité pour l'utilisateur d'appartenance connecté.
public:
static System::Web::Security::MembershipUser ^ GetUser();
public static System.Web.Security.MembershipUser GetUser ();
static member GetUser : unit -> System.Web.Security.MembershipUser
Public Shared Function GetUser () As MembershipUser
Retours
Un objet MembershipUser qui représente l'utilisateur connecté.
Exceptions
Aucun utilisateur d'appartenance ne se connecte actuellement.
Exemples
L’exemple de code suivant met à jour la date/heure de la dernière activité pour l’utilisateur d’appartenance connecté actuel et affiche le nom d’utilisateur dans la page ASP.NET.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
MembershipUser currentUser;
public void Page_Load()
{
currentUser = Membership.GetUser();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>
<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>.
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim currentUser As MembershipUser
Public Sub Page_Load()
currentUser = Membership.GetUser()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>
<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>.
</form>
</body>
</html>
Remarques
GetUser() récupère les informations utilisateur de la source de données et crée un MembershipUser objet rempli avec les données retournées. Si vous utilisez l’une GetUser des surcharges qui ne prennent pas de username
paramètre, GetUser retourne les informations pour l’utilisateur d’appartenance actuellement connecté. L’utilisateur d’appartenance actuellement connecté est identifié par le Name de l’utilisateur dans le actuel HttpContext.
Vous pouvez également spécifier si vous souhaitez GetUser mettre à jour l’horodatage de la dernière activité pour l’utilisateur récupéré à l’aide du userIsOnline
paramètre . Parmi les GetUser surcharges qui ne prennent pas de userIsOnline
paramètre, GetUser()
met à jour implicitement l’horodatage de la dernière activité pour l’utilisateur.
GetUser(System.String)
et GetUser(System.Object)
pas.
Voir aussi
S’applique à
GetUser(Object)
Obtient de la source de données les informations sur l'utilisateur d'appartenance associé à l'identificateur unique spécifié.
public:
static System::Web::Security::MembershipUser ^ GetUser(System::Object ^ providerUserKey);
public static System.Web.Security.MembershipUser GetUser (object providerUserKey);
static member GetUser : obj -> System.Web.Security.MembershipUser
Public Shared Function GetUser (providerUserKey As Object) As MembershipUser
Paramètres
- providerUserKey
- Object
Identificateur unique dans la source de données d'appartenance pour l'utilisateur.
Retours
Objet MembershipUser représentant l'utilisateur associé à l'identificateur unique spécifié.
Exceptions
providerUserKey
a la valeur null
.
Remarques
La GetUser méthode récupère les informations utilisateur de la source de données et crée un MembershipUser objet rempli avec les données retournées. L’utilisateur est identifié à l’aide de l’identificateur unique de la source de données spécifiée à l’aide du providerUserKey
paramètre .
Vous pouvez également spécifier si vous souhaitez GetUser mettre à jour l’horodatage de la dernière activité pour l’utilisateur récupéré avec le userIsOnline
paramètre. Parmi les GetUser surcharges qui ne prennent pas de userIsOnline
paramètre, GetUser()
met à jour implicitement l’horodatage de la dernière activité pour l’utilisateur.
GetUser(System.String)
et GetUser(System.Object)
ne pas