Merge pull request #1155 from steffen-kiess/json-string
[mono.git] / mcs / class / System.Web / System.Web.Security / PassportAuthenticationModule.cs
index 9fd102d2ed34a16b4b6a20a5e79e2a3ef1a3b870..0fd828f16797b6983c95015e10e6fda619cf6560 100644 (file)
@@ -5,7 +5,7 @@
 //     Gonzalo Paniagua Javier (gonzalo@ximian.com)
 //
 // (C) 2002 Ximian, Inc (http://www.ximian.com)
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2005-2010 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using System.ComponentModel;
 using System.Security.Permissions;
 
 namespace System.Web.Security
 {
        // CAS - no InheritanceDemand here as the class is sealed
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [Obsolete ("This type is obsolete. The Passport authentication product is no longer supported and has been superseded by Live ID.")]
        public sealed class PassportAuthenticationModule : IHttpModule
        {
+               static readonly object authenticateEvent = new object ();
+
+               EventHandlerList events = new EventHandlerList ();
                [SecurityPermission (SecurityAction.Demand, UnmanagedCode = true)]
                public PassportAuthenticationModule ()
                {
                }
 
-               public event PassportAuthenticationEventHandler Authenticate;
+               public event PassportAuthenticationEventHandler Authenticate {
+                       add { events.AddHandler (authenticateEvent, value); }
+                       remove { events.RemoveHandler (authenticateEvent, value); }
+               }
 
                public void Dispose ()
                {
-                       if (Authenticate != null)
-                               Authenticate = null;
+                       events.Dispose ();
                }
 
                [MonoTODO("Will we ever implement this? :-)")]