【问题标题】:B2C custom policy 'ignoring' claims exchangeB2C 自定义政策“忽略”索赔交换
【发布时间】:2020-07-01 20:58:39
【问题描述】:

我正在关注本指南

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

但是代码已被弃用 - IHttpActionResult 在最新版本的 Net Core 中不再存在

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

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

但是,如果我这样做,策略会简单地忽略错误并继续注册用户。

【问题讨论】:

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


    【解决方案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));
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多