HttpClientCredentialType.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / HttpClientCredentialType.cs / 1 / HttpClientCredentialType.cs

                            //------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel
{ 
    using System.Net;
 
    public enum HttpClientCredentialType 
    {
        None, 
        Basic,
        Digest,
        Ntlm,
        Windows, 
        Certificate
    } 
 
    static class HttpClientCredentialTypeHelper
    { 
        internal static bool IsDefined(HttpClientCredentialType value)
        {
            return (value == HttpClientCredentialType.None ||
                value == HttpClientCredentialType.Basic || 
                value == HttpClientCredentialType.Digest ||
                value == HttpClientCredentialType.Ntlm || 
                value == HttpClientCredentialType.Windows || 
                value == HttpClientCredentialType.Certificate);
        } 

        internal static AuthenticationSchemes MapToAuthenticationScheme(HttpClientCredentialType clientCredentialType)
        {
            AuthenticationSchemes result; 
            switch (clientCredentialType)
            { 
                case HttpClientCredentialType.Certificate: 
                    // fall through to None case
                case HttpClientCredentialType.None: 
                    result = AuthenticationSchemes.Anonymous;
                    break;
                case HttpClientCredentialType.Basic:
                    result = AuthenticationSchemes.Basic; 
                    break;
                case HttpClientCredentialType.Digest: 
                    result = AuthenticationSchemes.Digest; 
                    break;
                case HttpClientCredentialType.Ntlm: 
                    result = AuthenticationSchemes.Ntlm;
                    break;
                case HttpClientCredentialType.Windows:
                    result = AuthenticationSchemes.Negotiate; 
                    break;
                default: 
                    DiagnosticUtility.DebugAssert("unsupported client credential type"); 
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException());
            } 
            return result;
        }

        internal static HttpClientCredentialType MapToClientCredentialType(AuthenticationSchemes authenticationSchemes) 
        {
            HttpClientCredentialType result; 
            switch (authenticationSchemes) 
            {
                case AuthenticationSchemes.Anonymous: 
                    result = HttpClientCredentialType.None;
                    break;
                case AuthenticationSchemes.Basic:
                    result = HttpClientCredentialType.Basic; 
                    break;
                case AuthenticationSchemes.Digest: 
                    result = HttpClientCredentialType.Digest; 
                    break;
                case AuthenticationSchemes.Ntlm: 
                    result = HttpClientCredentialType.Ntlm;
                    break;
                case AuthenticationSchemes.Negotiate:
                    result = HttpClientCredentialType.Windows; 
                    break;
                default: 
                    DiagnosticUtility.DebugAssert("unsupported client AuthenticationScheme"); 
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException());
            } 
            return result;
        }
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK