aboutsummaryrefslogtreecommitdiff
path: root/Emby.Common.Implementations/IO/SharpCifs/Smb/NtlmAuthenticator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Common.Implementations/IO/SharpCifs/Smb/NtlmAuthenticator.cs')
-rw-r--r--Emby.Common.Implementations/IO/SharpCifs/Smb/NtlmAuthenticator.cs136
1 files changed, 70 insertions, 66 deletions
diff --git a/Emby.Common.Implementations/IO/SharpCifs/Smb/NtlmAuthenticator.cs b/Emby.Common.Implementations/IO/SharpCifs/Smb/NtlmAuthenticator.cs
index 853364f8e..b3509cd78 100644
--- a/Emby.Common.Implementations/IO/SharpCifs/Smb/NtlmAuthenticator.cs
+++ b/Emby.Common.Implementations/IO/SharpCifs/Smb/NtlmAuthenticator.cs
@@ -16,78 +16,82 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
namespace SharpCifs.Smb
{
- /// <summary>This class can be extended by applications that wish to trap authentication related exceptions and automatically retry the exceptional operation with different credentials.
- /// </summary>
- /// <remarks>This class can be extended by applications that wish to trap authentication related exceptions and automatically retry the exceptional operation with different credentials. Read <a href="../../../authhandler.html">jCIFS Exceptions and NtlmAuthenticator</a> for complete details.
- /// </remarks>
- public abstract class NtlmAuthenticator
- {
- private static NtlmAuthenticator _auth;
+ /// <summary>
+ /// This class can be extended by applications that wish to trap authentication related exceptions and automatically retry the exceptional operation with different credentials.
+ /// </summary>
+ /// <remarks>
+ /// This class can be extended by applications that wish to trap authentication related exceptions and automatically retry the exceptional operation with different credentials. Read <a href="../../../authhandler.html">jCIFS Exceptions and NtlmAuthenticator</a> for complete details.
+ /// </remarks>
+ public abstract class NtlmAuthenticator
+ {
+ private static NtlmAuthenticator _auth;
- private string _url;
+ private string _url;
- private SmbAuthException _sae;
+ private SmbAuthException _sae;
- private void Reset()
- {
- _url = null;
- _sae = null;
- }
+ private void Reset()
+ {
+ _url = null;
+ _sae = null;
+ }
- /// <summary>Set the default <tt>NtlmAuthenticator</tt>.</summary>
- /// <remarks>Set the default <tt>NtlmAuthenticator</tt>. Once the default authenticator is set it cannot be changed. Calling this metho again will have no effect.
- /// </remarks>
- public static void SetDefault(NtlmAuthenticator a)
- {
- lock (typeof(NtlmAuthenticator))
- {
- if (_auth != null)
- {
- return;
- }
- _auth = a;
- }
- }
+ /// <summary>Set the default <tt>NtlmAuthenticator</tt>.</summary>
+ /// <remarks>
+ /// Set the default <tt>NtlmAuthenticator</tt>. Once the default authenticator is set it cannot be changed. Calling this metho again will have no effect.
+ /// </remarks>
+ public static void SetDefault(NtlmAuthenticator a)
+ {
+ lock (typeof(NtlmAuthenticator))
+ {
+ if (_auth != null)
+ {
+ return;
+ }
+ _auth = a;
+ }
+ }
- protected internal string GetRequestingUrl()
- {
- return _url;
- }
+ protected internal string GetRequestingUrl()
+ {
+ return _url;
+ }
- protected internal SmbAuthException GetRequestingException()
- {
- return _sae;
- }
+ protected internal SmbAuthException GetRequestingException()
+ {
+ return _sae;
+ }
- /// <summary>Used internally by jCIFS when an <tt>SmbAuthException</tt> is trapped to retrieve new user credentials.
- /// </summary>
- /// <remarks>Used internally by jCIFS when an <tt>SmbAuthException</tt> is trapped to retrieve new user credentials.
- /// </remarks>
- public static NtlmPasswordAuthentication RequestNtlmPasswordAuthentication(string
- url, SmbAuthException sae)
- {
- if (_auth == null)
- {
- return null;
- }
- lock (_auth)
- {
- _auth._url = url;
- _auth._sae = sae;
- return _auth.GetNtlmPasswordAuthentication();
- }
- }
+ /// <summary>
+ /// Used internally by jCIFS when an <tt>SmbAuthException</tt> is trapped to retrieve new user credentials.
+ /// </summary>
+ /// <remarks>
+ /// Used internally by jCIFS when an <tt>SmbAuthException</tt> is trapped to retrieve new user credentials.
+ /// </remarks>
+ public static NtlmPasswordAuthentication RequestNtlmPasswordAuthentication(string url,
+ SmbAuthException sae)
+ {
+ if (_auth == null)
+ {
+ return null;
+ }
+ lock (_auth)
+ {
+ _auth._url = url;
+ _auth._sae = sae;
+ return _auth.GetNtlmPasswordAuthentication();
+ }
+ }
- /// <summary>An application extending this class must provide an implementation for this method that returns new user credentials try try when accessing SMB resources described by the <tt>getRequestingURL</tt> and <tt>getRequestingException</tt> methods.
- /// </summary>
- /// <remarks>
- /// An application extending this class must provide an implementation for this method that returns new user credentials try try when accessing SMB resources described by the <tt>getRequestingURL</tt> and <tt>getRequestingException</tt> methods.
- /// If this method returns <tt>null</tt> the <tt>SmbAuthException</tt> that triggered the authenticator check will simply be rethrown. The default implementation returns <tt>null</tt>.
- /// </remarks>
- protected internal virtual NtlmPasswordAuthentication GetNtlmPasswordAuthentication
- ()
- {
- return null;
- }
- }
+ /// <summary>An application extending this class must provide an implementation for this method that returns new user credentials try try when accessing SMB resources described by the <tt>getRequestingURL</tt> and <tt>getRequestingException</tt> methods.
+ /// </summary>
+ /// <remarks>
+ /// An application extending this class must provide an implementation for this method that returns new user credentials try try when accessing SMB resources described by the <tt>getRequestingURL</tt> and <tt>getRequestingException</tt> methods.
+ /// If this method returns <tt>null</tt> the <tt>SmbAuthException</tt> that triggered the authenticator check will simply be rethrown. The default implementation returns <tt>null</tt>.
+ /// </remarks>
+ protected internal virtual NtlmPasswordAuthentication GetNtlmPasswordAuthentication()
+ {
+ return null;
+ }
+ }
}