Heim  >  Fragen und Antworten  >  Hauptteil

Wie kann ich 401 mit einer benutzerdefinierten Nachricht zurückgeben?

In meiner Web-API fange ich die von der DoCdssLoginTests(...)-Methode ausgelöste AuthenticationException ab. In diesem Fall gebe ich einen 401-Fehler zurück, möchte ihn aber zum Senden einer benutzerdefinierten Nachricht verwenden können. < /p>

Das Inhaltsmitglied ist nicht verfügbar und ich kann die Antwort nicht mit einem neuen Mitglied überschreiben.

Ich habe diesen Thread gefunden, aber er bewirkt in meiner Methode nicht wirklich etwas, da ich einen String anstelle eines IHttpActionResult zurückgebe.

Ich kann auf .NET-Ausnahmen abzielen, die als „Nicht autorisiert“ oder „Unvalidiert“ ausgelöst werden

[ HttpGet ]
[ Route( "/DoCdssLoginTests" ) ]
public string DoCdssLoginTests( string sAdName )
{
    log.LogTrace( "AdStudentController::DoCdssLoginTests() - in" );
   
    try
    { 
        return studBll.DoCdssLoginTests( sAdName );
    }
    catch ( AuthenticationException ex )
    {
        Response.StatusCode = ( int ) HttpStatusCode.Unauthorized;
        //<--- I WANT TO SET A CUSTOM MESSAGE HERE TO BE RETURNED TO VUE CLIENT. - EWB
        return "N";
    }
    catch ( Exception ex )
    {
        throw;
    }

    return "OK";
}


P粉851401475P粉851401475292 Tage vor439

Antworte allen(1)Ich werde antworten

  • P粉567281015

    P粉5672810152024-01-02 11:11:36

    必须返回ActionResult,然后才能返回Unauthorized();像这样:

    public ActionResult<string> DoCdssLoginTests(string sAdName)
    {
        log.LogTrace("AdStudentController::DoCdssLoginTests() - in");
        try
        {
            return studBll.DoCdssLoginTests(sAdName);
        }
        catch (AuthenticationException ex)
        {
            return Unauthorized("Your custom message");
        }
        catch (Exception ex)
        {
            throw;
        }
        return "OK";
    }

    Antwort
    0
  • StornierenAntwort