File: System\Net\Mail\ISmtpAuthenticationModule.cs
Web Access
Project: src\src\libraries\System.Net.Mail\src\System.Net.Mail.csproj (System.Net.Mail)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System;
using System.Net;
using System.Security.Authentication.ExtendedProtection;
 
namespace System.Net.Mail
{
    internal interface ISmtpAuthenticationModule
    {
        Authorization? Authenticate(string? challenge, NetworkCredential? credentials, object sessionCookie, string? spn, ChannelBinding? channelBindingToken);
        string AuthenticationType { get; }
 
        //
        // CloseContext
        //
        // Signal to module to close any security context created in
        // calls to Authenticate.
        //
        // Added to allow for a module to not automatically release a
        // security context upon auth completion.
        //
        // Needed for SMTP AUTH GSSAPI where the security context is used
        // after authentication completes to verify and construct
        // signed messages.
        //
        // All SMTP auth modules must have an implementation of
        // this function.  It will be called for all modules but
        // those that automatically release the context can ignore it.
        //
        void CloseContext(object sessionCookie);
    }
}