B2C定制政策“忽略”索赔交换

时间:2020-03-20 17:34:11

标签: asp.net azure asp.net-core azure-active-directory azure-ad-b2c

我正在遵循本指南

https://docs.microsoft.com/en-us/azure/active-directory-b2c/rest-api-claims-exchange-dotnet

但是不建议使用该代码-最新版本的Net Core中不再存在IHttpActionResult

这意味着该响应类型现在会突出显示为错误

if (inputClaims.firstName.ToLower() == "test")
        {
            return Content(HttpStatusCode.Conflict, new B2CResponseContent("Test name is not valid, please provide a valid name", HttpStatusCode.Conflict));
        }

我认为该方法应成为ActionResult并返回类似的结果

if (inputClaims.firstName.ToLower() == "test")
        {
            return Ok(new B2CResponseContent("Test name is not valid, please provide a valid name", HttpStatusCode.Conflict));
        }

但是,如果执行此操作,则该策略只会忽略该错误并继续注册用户。

1 个答案:

答案 0 :(得分:1)

您仍然必须返回HTTP状态码409(冲突)。 return Ok(..)将始终返回状态码200。

返回响应的正确方法是:

if (inputClaims.firstName.ToLower() == "test")
{
       return Conflict(new B2CResponseContent("Test name is not valid, please provide a valid name", HttpStatusCode.Conflict));
}

if (inputClaims.firstName.ToLower() == "test")
{
       return StatusCode((int)System.Net.HttpStatusCode.Conflict, new B2CResponseContent("Test name is not valid, please provide a valid name", HttpStatusCode.Conflict));
}