AppHarbor.Web.Security.AuthenticationCookie.Serialize C# (CSharp) Method

Serialize() public method

public Serialize ( ) : byte[]
return byte[]
		public byte[] Serialize()
		{
			using (var memoryStream = new MemoryStream())
			{
				using (var binaryWriter = new BinaryWriter(memoryStream))
				{
					binaryWriter.Write(_cookieType);
					binaryWriter.Write(_id.ToByteArray());
					binaryWriter.Write(_persistent);
					binaryWriter.Write(_issueDate.ToBinary());
					var formatter = new BinaryFormatter();
					var stream = new MemoryStream();
					formatter.Serialize(stream, _identity);
					binaryWriter.Write((int)stream.Length);
					binaryWriter.Write(stream.ToArray());
				}
				return memoryStream.ToArray();
			}
		}

Usage Example

		public void SetCookie(string username, bool persistent = false, string[] roles = null, byte[] tag = null, DateTime? explicitExpiry = null)
		{
			var cookie = new AuthenticationCookie(0, Guid.NewGuid(), persistent, username, roles, tag);
			using (var protector = new CookieProtector(_configuration))
			{
				var httpCookie = new HttpCookie(_configuration.CookieName, protector.Protect(cookie.Serialize()))
				{
					HttpOnly = true,
					Secure = _configuration.RequireSSL,
				};

                if (!string.IsNullOrEmpty(_configuration.Domain))
                {
                    httpCookie.Domain = _configuration.Domain;
                }
			    if (persistent)
				{
				    DateTime expireDateTime;
				    if (explicitExpiry.HasValue)
				    {
                        expireDateTime = explicitExpiry.Value;
				    }
				    else
				    {
                        expireDateTime = cookie.IssueDate + _configuration.Timeout;
				    }
				    httpCookie.Expires = expireDateTime;
                    SetExpireTimeTrackingCookie(expireDateTime);
				}

				_context.Response.Cookies.Add(httpCookie);
			}
		}
All Usage Examples Of AppHarbor.Web.Security.AuthenticationCookie::Serialize