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")); }
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()); }
public static string GetErrorMessage(KerberosErrorCode error) { return(SR.Resource($"KRB_ERROR_{error}")); }
public KerberosProtocolException(KerberosErrorCode error, string etext = null) : this(new KrbError() { ErrorCode = error, EText = etext }) { }