internal static ReadOnlyMemory <byte> GenerateGenericError(Exception ex, KdcServerOptions options)
        {
            KerberosErrorCode error     = KerberosErrorCode.KRB_ERR_GENERIC;
            string            errorText = options.IsDebug ? $"[Server] {ex}" : null;

            if (ex is KerberosProtocolException kex)
            {
                error     = kex.Error.ErrorCode;
                errorText = kex.Message;
            }

            return(GenerateError(error, errorText, options.DefaultRealm, "krbtgt"));
        }
示例#2
0
        internal static ReadOnlyMemory <byte> GenerateError(KerberosErrorCode code, string error, string realm, string sname)
        {
            var krbErr = new KrbError()
            {
                ErrorCode = code,
                EText     = error,
                Realm     = realm,
                SName     = new KrbPrincipalName
                {
                    Type = PrincipalNameType.NT_SRV_INST,
                    Name = new[] {
                        sname,
                        realm
                    }
                }
            };

            krbErr.StampServerTime();

            return(krbErr.EncodeApplication());
        }
示例#3
0
 public static string GetErrorMessage(KerberosErrorCode error)
 {
     return(SR.Resource($"KRB_ERROR_{error}"));
 }
示例#4
0
 public KerberosProtocolException(KerberosErrorCode error, string etext = null)
     : this(new KrbError() { ErrorCode = error, EText = etext })
 {
 }