我的问题是有这个,什么是当用户验证的登录到一个数据库的最佳方式?我曾考虑将重定向网址设置为端点,然后保存,然后重定向回“主页”,但这是否理想?
这种方式只能记录那些已经成功登录您的应用的用户。无法登录尝试登录您的应用的用户,但输入了错误的密码。
Azure的AD已经提供了大量的报告,以了解为您的组织目录的完整性和安全性。(参见here)
如果您正在使用Azure的AD高级版,您可以查看登录活动通过以下Azure new portal:
而且,如果要将登录活动存储在Web应用程序中,则可以在验证令牌后编写自定义代码。这是给你参考代码:
// Configure the OWIN pipeline to use OpenID Connect auth.
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
ClientId = Configuration["AzureAD:ClientId"],
Authority = String.Format(Configuration["AzureAd:AadInstance"], Configuration["AzureAd:Tenant"]),
ResponseType = OpenIdConnectResponseType.IdToken,
PostLogoutRedirectUri = Configuration["AzureAd:PostLogoutRedirectUri"],
Events = new OpenIdConnectEvents
{
OnRemoteFailure = OnAuthenticationFailed,
OnTokenValidated = context => {
//write the custom code to store users login-in
return Task.FromResult(0); }
},
});
此外,是否有可能通过检索这种方法的承载令牌?
是的。我们可以在收到授权码后获取令牌。您可以参考代码示例here以从asp.net核心应用程序获取令牌。
感谢您的回复。 OnTokenValidated代码位于我的Startup.cs中。不知道如何这是一个理想的点击DB – aherrick
身份验证流程是由用户开始,用户输入正确的用户名/密码后,Azure AD会将页面重定向到带有id_token的Web应用程序。然后,OWIN组件将尝试根据id_token验证用户信息。验证令牌后,“OnTokenValidated”将会触发。代码在哪个类上的位置并不重要。 –
ASP.Net Core 2.0仍然可以吗?这个API变化很大。 – zuckerthoben