首页 > 解决方案 > 如何在运行时使用 ASP.NET 的 WSFederationAuthenticationModule 选择身份提供者

问题描述

我开发了 asp.net mvc 应用程序(没有 .NET Core)。它使用带有自定义数据库的 WSFederationAuthenticationModule 实现对用户进行身份验证。现在我必须添加 Azure Active Directory 身份验证,并且在运行时我必须选择应该使用哪种身份验证方法。

我设置了以下结构:

 public class LoginInterceptorModule : IHttpModule
{
    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        context.AuthorizeRequest += OnAuthorizeRequest;
    }

    private void OnAuthorizeRequest(object sender, EventArgs e)
    {
        var httApp = (HttpApplication)sender;
        if (!httApp.Request.IsAuthenticated)
        {
            var user = httApp.Request.LogonUserIdentity.Name;
            if (IsMIgratedToAzure(user))
            {
               // set azure identity provider
            }
            else
            {
               // set custom identity provider
            }
        }
    }

    private bool IsMIgratedToAzure(string username)
    {
        // put logic
        return false;
    }

}

我可以从这里开始吗?如果真是这样,那么是以哪种方式?如果没有,你对我有什么建议吗?

标签: asp.netauthenticationazure-active-directoryfederated-identityws-federation

解决方案


推荐阅读