Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengembalikan 401 dengan mesej tersuai?

Dalam API Web saya, saya menangkap AuthenticationException yang dilemparkan oleh kaedah DoCdssLoginTests(...) dalam kes ini saya mengembalikan ralat 401, tetapi saya mahu dapat menggunakannya untuk menghantar mesej tersuai. < /p>

Ahli kandungan tidak tersedia dan saya tidak boleh mengatasi respons dengan ahli baharu.

Saya menjumpai benang ini tetapi ia tidak benar-benar melakukan apa-apa dalam kaedah saya kerana saya mengembalikan rentetan dan bukannya IHttpActionResult.

Saya boleh menyasarkan pengecualian .NET yang dilemparkan untuk "Tidak dibenarkan" atau "Tidak sah"

[ 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 hari yang lalu442

membalas semua(1)saya akan balas

  • P粉567281015

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

    ActionResult mesti dikembalikan sebelum Unauthorized() boleh dikembalikan seperti ini:

    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";
    }

    balas
    0
  • Batalbalas