pre*_*elb 7 asp.net azure azure-active-directory azure-web-app-service
我已将测试 .NET Web Api 提升到 Azure 应用程序服务,并在 Azure Active Directory 下包含应用程序注册。然后我去本地做了一些测试,发现Azure希望在登录后在应用程序注册中使用回复URL。应用程序注册中的回复 URL 是应用程序服务的 URL。我的本地实例类似于https://localhost:44377/。在初始部署到 Azure 后,您应该如何在本地测试更改?我能想到的就是创建另一个应用程序注册进行测试,使用我的本地主机回复 URL,然后更新我的 web.config 以指向该开发应用程序注册。然后在再次发布之前,将 web.config 更新回其他应用程序注册。
下面是我用于身份验证的代码,它基于一个简单的 MVC 项目的标准模板。应用程序注册值用于重定向 URL,但也许我应该在测试时覆盖下面的这些值?
public class AccountController : Controller
{
public void SignIn()
{
// Send an OpenID Connect sign-in request.
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过指定要在身份验证请求中使用的回复 URL 来拥有多个回复 URL。您可以在 Startup.cs 中配置身份验证时执行此操作。您需要将 RedirectUri 添加到您的OpenIdConnectAuthenticationOptions.Notifications.RedirectToIdentityProvider
var openIdOptions = new OpenIdConnectAuthenticationOptions
{
//...
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = (context) =>
{
context.ProtocolMessage.RedirectUri = "<current reply uri>";
return Task.FromResult(0);
}
}
// ...
};
Run Code Online (Sandbox Code Playgroud)
该回复 uri 可以从您的 web.config 中提取或使用动态生成context.Request。
如果您想在生产后使用不同的 AD 应用程序,您可以拥有两个应用程序,并将客户端 ID 和密钥放入 web.config 中。
| 归档时间: |
|
| 查看次数: |
10442 次 |
| 最近记录: |