Why do you think the authentication type is SecureSocketsLayer? That's not a default value and you don't set that anywhere. In .NET 2.0+, the default is "Secure" which does negotiate authentication.
It would also be helpful to know what the value of the username and password were that generated this failure. How do we know if they are null references or empty strings from the code above?