Wie kann ich 401 mit einer benutzerdefinierten Nachricht zurückgeben?
P粉851401475
P粉851401475 2024-01-01 15:06:48
0
1
477

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粉851401475
P粉851401475

Antworte allen(1)
P粉567281015

必须返回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";
}
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage