55 lines
1.5 KiB
C#
55 lines
1.5 KiB
C#
|
#region Using directives
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
using System.Runtime.Remoting.Messaging;
|
|||
|
using System.Runtime.Serialization;
|
|||
|
using System.Security;
|
|||
|
using System.Security.Permissions;
|
|||
|
using System.Security.Principal;
|
|||
|
#endregion
|
|||
|
|
|||
|
namespace System.Workflow.Activities
|
|||
|
{
|
|||
|
[Serializable]
|
|||
|
internal sealed class IdentityContextData : ILogicalThreadAffinative, ISerializable
|
|||
|
{
|
|||
|
internal const string IdentityContext = "__identitycontext__";
|
|||
|
|
|||
|
String identity;
|
|||
|
|
|||
|
internal IdentityContextData(String identity)
|
|||
|
{
|
|||
|
this.identity = identity;
|
|||
|
}
|
|||
|
|
|||
|
private IdentityContextData(SerializationInfo info, StreamingContext context)
|
|||
|
{
|
|||
|
SerializationInfoEnumerator enumerator = info.GetEnumerator();
|
|||
|
while (enumerator.MoveNext())
|
|||
|
{
|
|||
|
if (enumerator.Name.Equals("identity"))
|
|||
|
{
|
|||
|
this.identity = (String)enumerator.Value;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[SecurityPermission( SecurityAction.Demand, SerializationFormatter = true)]
|
|||
|
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
|
|||
|
{
|
|||
|
if (this.identity != null)
|
|||
|
info.AddValue("identity", identity.ToString());
|
|||
|
}
|
|||
|
|
|||
|
internal String Identity
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return identity;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|