[Mono-bugs] [Bug 692451] New: Issues with System.Web.HttpClientCertificate

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun May 8 12:07:28 EDT 2011


https://bugzilla.novell.com/show_bug.cgi?id=692451

https://bugzilla.novell.com/show_bug.cgi?id=692451#c0


           Summary: Issues with System.Web.HttpClientCertificate
    Classification: Mono
           Product: Mono: Class Libraries
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.Web
        AssignedTo: mhabersack at novell.com
        ReportedBy: kevincathcart at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Other
           Blocker: ---


Out of curiosity I was looking through the mono source for the LAME tag, and
ran across System.Web.HttpClientCertificate.

The first thing I noticed was the IsValid property. It contains a check against
IsPresent marked lame. That check is not necessary. The Microsoft
implementation of IsValid returns false when presented with the IIS Server
Variable CERT_FLAGS set to inconstant value of 2 (0b10, i.e. the present flag
is not set, but the invalid flag is set).

---

Then I notice the Get property. This has many problems.

First of all it is marked as LAMESPEC. However the real problem is that the
Microsoft code is not consistent with the MSDN documentation. Therefore this is
not a case of LAMESPEC, but rather buggy documentation or code.

Secondly, the function as implemented in mono simply returns the empty string
in all cases. That is most definitely not what the documentation says nor what
Microsoft implementation does. The code is not marked with MonoTODO, nor it is
marked with a FIXME. That really needs to be fixed.

The Microsoft implementation has some unusual cases, none of which are
documented, so the matching the Microsoft Implementation without simply coping
it will be rather difficult. In particular the Get Property accepts many
different values that are not listed in the (inherited) Keys property.

---

Furthermore the Mono implementation does not add the list of keys to the base
class. Basically, this particular class is so poorly designed with many weird
edge cases it would really be necessary to look at Microsoft's implementation
(via decompilation, or by looking at the source) in order to accurately
implement it.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list