我正在使用OpenId Connect协议在我的应用程序中进行身份验证。在Startup.cs文件中,我使用returnUrl配置了所有配置的挑战(登录,注册,更改密码等),但是当我调用挑战时,我想使用当前文化更改returnUrl用户在...为此我打电话给以下人员:
public static void SignIn(this IOwinContext context)
{
var authProperties = new AuthenticationProperties { RedirectUri = 'https://domain.com/ga-IE/Home/Index' };
context.Authentication.Challenge(authProperties, ClientSettings.Login);
}
所以,我的问题是我可以将returnUrl视为en-IE而不是新传递的ga-IE。 我做错了什么?
答案 0 :(得分:1)
根据您的问题,目前尚不清楚您是将IdP引用到应用流量还是应用于应用内流量。我会假设前者。 AuthenticationProperties的RedirectUri属性与您在中间件选项中指定的RedirectUri不同。这里有我即将发布的book的引文,可能有助于澄清:
RedirectUri属性只是一个不幸的巧合 所描述的恰好与OAuth2 / OpenID完全相同 连接协议参数。不发送在Challenge中传递的值 到Azure AD并用作协议舞蹈的一部分:它是一个本地的 认证舞蹈发生后使用的值。所有 必须显式注册Azure AD使用的重定向URI 安全原因,显然不可能注册所有 可能的控制器操作作为返回URI。这就是Azure AD的原因 通常只与每个应用程序关联几个返回URI(通常 一个用于每个部署根目录)和中间件本身负责 执行本地重定向而不涉及IdP以确保这一点 要求降落在正确的资源上。