.NET Framework Class Library
FormsAuthenticationTicket..::.UserData Property

Gets a user-specific string stored with the ticket.

Namespace:  System.Web.Security
Assembly:  System.Web (in System.Web.dll)
Syntax

Visual Basic (Declaration)
Public ReadOnly Property UserData As String
Visual Basic (Usage)
Dim instance As FormsAuthenticationTicket
Dim value As String

value = instance.UserData
C#
public string UserData { get; }
Visual C++
public:
property String^ UserData {
    String^ get ();
}
JScript
public function get UserData () : String

Property Value

Type: System..::.String
A user-specific string stored with the ticket. The default is an empty string ("").
Remarks

If the FormsAuthenticationTicket is created using a constructor that does not supply a userData parameter, the UserData property returns an empty string (""); otherwise, the version property returns the value supplied to the FormsAuthenticationTicket constructor.

You can use the UserData property to store additional user information with the FormsAuthenticationTicket that is not maintained by the FormsAuthenticationTicket property values.

NoteNote:

You should limit the amount of data stored in the UserData property. You must ensure that the size of the UserData property does not result in an invalid cookie or an excessively long URL.

Examples

The following code example displays the property values of the FormsAuthenticationTicket for the current logged-on user.

NoteNote:

If there is no logged-on user, the Identity property will be nullNothingnullptra null reference (Nothing in Visual Basic) and you will receive a compiler exception when attempting to cast the Identity property as a FormsIdentity object.

Visual Basic
<%@ Page Language="VB" AutoEventWireup="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    Sub Page_Load(sender As Object, e As EventArgs)
        Welcome.InnerHtml = "Hello, " + _
            Server.HtmlEncode(User.Identity.Name)

       Dim id As FormsIdentity = CType(User.Identity, FormsIdentity) 
       Dim ticket As FormsAuthenticationTicket = id.Ticket 

       cookiePath.Text = ticket.CookiePath
       expireDate.Text = ticket.Expiration.ToString()
       expired.Text = ticket.Expired.ToString()
       isPersistent.Text = ticket.IsPersistent.ToString()
       issueDate.Text = ticket.IssueDate.ToString()
       name.Text = ticket.Name
       userData.Text = ticket.UserData
       version.Text = ticket.Version.ToString()
    End Sub

    Sub Signout_Click(sender As Object, e As EventArgs)
        FormsAuthentication.SignOut()
        Response.Write("Logged out - cookie deleted.")
    End Sub

</script>
<html  >
<head>
    <title>Forms Authentication</title>
</head>
<body>
    <h3>Forms Authentication Example</h3>
    <span id="Welcome" runat="server"> </span>
    <form id="form1" runat="server">
        <input type="submit" value="Signout" runat="server" onserverclick="Signout_Click" />
        <h3>Forms Authentication Ticket Properties</h3> 
            <table>
                <tbody>
                    <tr>
                        <td>
                            CookiePath: 
                        </td>
                        <td><asp:Label id="cookiePath" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Expiration: 
                        </td>
                        <td><asp:Label id="expireDate" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Expired: 
                        </td>
                        <td><asp:Label id="expired" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            IsPersistent: 
                        </td>
                        <td><asp:Label id="isPersistent" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            IssueDate: 
                        </td>
                        <td><asp:Label id="issueDate" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Name: 
                        </td>
                        <td><asp:Label id="name" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            UserData: 
                        </td>
                        <td><asp:Label id="userData" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Version: 
                        </td>
                        <td><asp:Label id="version" runat="server" />
                        </td>
                    </tr>
                </tbody>
            </table>
            <p>
            </p>
    </form>
</body>
</html>
C#
<%@ Page Language="C#" AutoEventWireup="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    private void Page_Load(Object Src, EventArgs e)
    {
        Welcome.InnerHtml = "Hello, " +
            Server.HtmlEncode(User.Identity.Name);

       FormsIdentity id = (FormsIdentity)User.Identity;
       FormsAuthenticationTicket ticket = id.Ticket;

       cookiePath.Text = ticket.CookiePath;
       expireDate.Text = ticket.Expiration.ToString();
       expired.Text = ticket.Expired.ToString();
       isPersistent.Text = ticket.IsPersistent.ToString();
       issueDate.Text = ticket.IssueDate.ToString();
       name.Text = ticket.Name;
       userData.Text = ticket.UserData;
       version.Text = ticket.Version.ToString();


    }
    private void Signout_Click(Object sender, EventArgs e)
    {
        FormsAuthentication.SignOut();
        Response.Write("Logged out - cookie deleted.");
    }

</script>
<html  >
<head>
    <title>Forms Authentication</title>
</head>
<body>
    <h3>Forms Authentication Example</h3>
    <span id="Welcome" runat="server"> </span>
    <form id="form1" runat="server">
        <input type="submit" value="Signout" runat="server" onserverclick="Signout_Click" />
        <h3>Forms Authentication Ticket Properties</h3> 
            <table>
                <tbody>
                    <tr>
                        <td>
                            CookiePath: 
                        </td>
                        <td><asp:Label id="cookiePath" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Expiration: 
                        </td>
                        <td><asp:Label id="expireDate" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Expired: 
                        </td>
                        <td><asp:Label id="expired" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            IsPersistent: 
                        </td>
                        <td><asp:Label id="isPersistent" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            IssueDate: 
                        </td>
                        <td><asp:Label id="issueDate" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Name: 
                        </td>
                        <td><asp:Label id="name" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            UserData: 
                        </td>
                        <td><asp:Label id="userData" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Version: 
                        </td>
                        <td><asp:Label id="version" runat="server" />
                        </td>
                    </tr>
                </tbody>
            </table>
            <p>
            </p>
    </form>
</body>
</html>
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
See Also

Reference

Other Resources

Tags :


Community Content

perlun
Incorrect comment
Right before the comment, there is this comment:
If there is no logged-on user, the Identity property will be a null reference (Nothing in Visual Basic) and you will receive a compiler exception when attempting to cast the Identity property as a FormsIdentity object.
I believe this is wrong... You will get a runtime exception if the Identity property is a null reference, not a compilation exception.
Tags :

Jussi Iinatti
Wrong property name
In Remarks section :"... the UserDataproperty returns an empty string (""); otherwise, the version property returns the value supplied ...". I think the name of property should be UserData in both cases, not version.
Tags :

Vbird2k
UserData property value got lost.
For some reasons, UserData property became empty when I checked it in Application_AuthenticateRequest() event, although other values (like Name, Expired, etc.) were still there. It was assigned a value "Student" when using constructor. Don't understand why.
Tags :

Nick Aceves
Incorrect statement about exceptions when casting
From perlun (above):
Right before the comment, there is this comment:
If there is no logged-on user, the Identity property will be a null reference (Nothing in Visual Basic) and you will receive a compiler exception when attempting to cast the Identity property as a FormsIdentity object.
I believe this is wrong... You will get a runtime exception if the Identity property is a null reference, not a compilation exception.

Also, you will not get an exception when attempting to castthe null Identity property as a FormsIdentity, you will get NullReferenceException at runtime when attempting to access a member of the null Identity.
Tags :

Page view tracker