2 // System.Security.Principal.WindowsIdentity
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
6 // Sebastien Pouliot (spouliot@motus.com)
8 // (C) 2002 Ximian, Inc (http://www.ximian.com)
9 // Portions (C) 2003 Motus Technologies Inc. (http://www.motus.com)
13 using System.Runtime.Serialization;
15 namespace System.Security.Principal {
19 public class WindowsIdentity : IIdentity, IDeserializationCallback {
21 public class WindowsIdentity : IIdentity, IDeserializationCallback, ISerializable {
23 private IntPtr _token;
25 private WindowsAccountType _account;
26 private bool _authenticated;
28 public WindowsIdentity (IntPtr userToken)
32 _account = WindowsAccountType.Normal;
33 _authenticated = false;
36 public WindowsIdentity (IntPtr userToken, string type)
40 _account = WindowsAccountType.Normal;
41 _authenticated = false;
44 public WindowsIdentity (IntPtr userToken, string type, WindowsAccountType acctType)
49 _authenticated = false;
52 public WindowsIdentity (IntPtr userToken, string type, WindowsAccountType acctType, bool isAuthenticated)
57 _authenticated = isAuthenticated;
61 public WindowsIdentity (string sUserPrincipalName)
63 throw new ArgumentException ("only for Windows Server 2003 +");
67 public WindowsIdentity (string sUserPrincipalName, string type)
69 throw new ArgumentException ("only for Windows Server 2003 +");
73 public WindowsIdentity (SerializationInfo info, StreamingContext context) {}
84 public static WindowsIdentity GetAnonymous ()
86 throw new NotImplementedException ();
90 public static WindowsIdentity GetCurrent ()
92 throw new NotImplementedException ();
95 public virtual WindowsImpersonationContext Impersonate ()
97 return new WindowsImpersonationContext (_token);
100 public static WindowsImpersonationContext Impersonate (IntPtr userToken)
102 return new WindowsImpersonationContext (userToken);
107 public virtual string AuthenticationType
109 get { return _type; }
112 public virtual bool IsAnonymous
114 get { return (_account == WindowsAccountType.Anonymous); }
117 public virtual bool IsAuthenticated
119 get { return _authenticated; }
122 public virtual bool IsGuest
124 get { return (_account == WindowsAccountType.Guest); }
127 public virtual bool IsSystem
129 get { return (_account == WindowsAccountType.System); }
133 public virtual string Name
136 throw new NotImplementedException ();
140 public virtual IntPtr Token
142 get { return _token; }
146 void IDeserializationCallback.OnDeserialization (object sender)
148 throw new NotImplementedException ();
152 void ISerializable.GetObjectData (SerializationInfo info, StreamingContext context)
154 throw new NotImplementedException ();