我正在尝试使用 Azure AD 在我们的网站中实现身份验证,遵循以下参考。我们的网站使用托管在 IIS 上的以下堆栈 ASP.NET、MVC5。基本上使用 OpenId Connect 协议进行网站身份验证,并使用 oAuth2.0 协议进行委托访问以使用令牌进行授权。
https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet
从 Azure AD 逻辑获取令牌位于 Startup.Auth.cs 类中,该类从 OwinStartup 类中调用。
当我在我们的站点中实现此功能时,Startup.Auth.cs ConfigureAuth 在 APP 启动期间仅执行一次,并且根据上述参考。
使用 [Authorize] 装饰控制器类或添加 SignIn() 以检查请求是否经过身份验证,然后再次调用 Authenticate 代码。
public void SignIn()
{
// Send an OpenID Connect sign-in request.
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
问题是 SignIn() 方法没有进入我们的应用程序,并且对 [Authorize] 属性的作用感到好奇?
我非常感谢对这些的任何见解。提前非常感谢。