我想在我們的網站中使用Azure AD實現身份驗證,請參閱下面的參考資料。我們的網站使用IIS上託管的下面的ASP.NET ASP.NET MVC5。基本上使用OpenId Connect協議進行網站身份驗證,並使用oAuth2.0協議進行委託訪問,以使用令牌進行授權。使用針對Azure AD的OpenId Connect實現實現身份驗證?
https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet
充分利用天青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]屬性的作用感到好奇嗎?
我非常感謝您對這些有所瞭解。非常感謝。
是的,這是Azure AD,我已經在問題中更新了它。感謝您的迴應,它有幫助。 – SteelBird82
關於「ASP.NET將強制調用者進行身份驗證」 - 它執行Startup.Auth.cs app.UseOpenIdConnectAuthentication(..)中的身份驗證處理程序中的代碼嗎?在調試代碼時我看不到這個執行。 – SteelBird82
這裏強制執行意味着檢查isauthenticated標誌是否爲true,否則開始返回401。正如我在答案中所說的那樣,初始化只發生一次。如果有代碼連接通知,那麼應該執行 - 但只有當您獲取令牌時,纔會執行此操作。 – vibronet