/// <summary>
        /// Gets the data used to revive users.
        /// </summary>
        /// <param name="context">The security context.</param>
        /// <param name="userState">The user which will be revived.</param>
        /// <param name="parameters">The parameters used for authentication of <paramref name="userState"/>.</param>
        /// <returns>Returns the revival data or null.</returns>
        /// <exception cref="NotSupportedException">Thrown when <see cref="AuthenticationProvider.SupportsRevival"/> is false.</exception>
        public override IPropertyBag GetRevivalProperties(IMansionContext context, UserState userState, IPropertyBag parameters)
        {
            // validate arguments
            if (context == null)
                throw new ArgumentNullException("context");
            if (userState == null)
                throw new ArgumentNullException("userState");
            if (parameters == null)
                throw new ArgumentNullException("parameters");

            // return the revival properties
            return new PropertyBag {
                {"id", userState.Id}
            };
        }
        private UserState CreateUserState(IMansionContext context, Node userNode)
        {
            // create the user state
            var userState = new UserState(userNode.Get<Guid>(context, "guid"), this);

            // merge the user properties
            userState.Properties.Merge(userNode);

            return userState;
        }
		/// <summary>
		/// Gets the data used to revive users.
		/// </summary>
		/// <param name="context">The security context.</param>
		/// <param name="userState">The user which will be revived.</param>
		/// <param name="parameters">The parameters used for authentication of <paramref name="userState"/>.</param>
		/// <returns>Returns the revival data or null.</returns>
		/// <exception cref="NotSupportedException">Thrown when <see cref="SupportsRevival"/> is false.</exception>
		public virtual IPropertyBag GetRevivalProperties(IMansionContext context, UserState userState, IPropertyBag parameters)
		{
			throw new NotSupportedException();
		}