C# 在asp.net中使用数据库或Active Directory身份验证

C# 在asp.net中使用数据库或Active Directory身份验证,c#,asp.net,authentication,active-directory,C#,Asp.net,Authentication,Active Directory,我们通过容器使用ASP.NET广告验证。我想添加一些功能来进行AD身份验证(目前无需我生成代码即可工作)或数据库身份验证 我处理了Authenticate事件,如果在web.config中配置了数据库,则可以选择进行数据库调用,但它似乎是全有或全无。要么我必须通过代码进行AD和数据库身份验证,要么只使用AD。我可以处理数据库内容并通过AD身份验证,然后让系统处理它(例如,它现在在幕后是如何处理的?) 现在的问题是,我没有任何代码来处理广告内容,因此如果我使用的是广告,则会调用已处理的事件,aut

我们通过
容器使用ASP.NET广告验证。我想添加一些功能来进行AD身份验证(目前无需我生成代码即可工作)或数据库身份验证

我处理了
Authenticate
事件,如果在
web.config
中配置了数据库,则可以选择进行数据库调用,但它似乎是全有或全无。要么我必须通过代码进行AD和数据库身份验证,要么只使用AD。我可以处理数据库内容并通过AD身份验证,然后让系统处理它(例如,它现在在幕后是如何处理的?)

现在的问题是,我没有任何代码来处理广告内容,因此如果我使用的是广告,则会调用已处理的事件,auth变量填充为false,登录失败。我想做广告的东西,但不一定要写一堆代码(如果我必须这样做的话)

这是我的asp.net代码

  <asp:Login id="ADLogin" runat="server" destinationpageurl="Summary.aspx" width="250px" ForeColor="White"
    DisplayRememberMe="False" 
        remembermetext="Remember me next time on this computer" titletext="" 
    usernamelabeltext="User Name: " passwordlabeltext="Password: " 
        onloggedin="ADLogin_LoggedIn" onloginerror="ADLogin_LoginError" 
        onloggingin="ADLogin_LoggingIn" 
        onauthenticate="ADLogin_Authenticate">
  </asp:Login>

我认为编程处理广告代码(你自己的)不是一个好的尝试。但是asp.net提供程序模型是一种杰出的实践。您可以扩展提供者模型。以下链接为您提供了实际查看的内容


谢谢,为了澄清,我已经完成了本页上的步骤,所以广告认证确实有效。但是,我认为我需要处理onauthenticate事件才能使用数据库或AD身份验证,这就是我迷路的地方,如果我处理该事件,似乎我必须同时为AD和数据库身份验证编写代码。Rob,让我知道我正确理解了您的问题。我想你必须集成广告认证,也可以使用你自己的逻辑进行一些自定义认证,也可以检查这个链接,谢谢这个链接,这让我达到了我想要的目的。我确实需要一个小程序来进行广告查找。这篇文章也有一定的帮助,但据我所知,没有找到一个解决方案来完成我需要的工作(调用内部方法来处理处理OnAuthenticate事件中的广告验证)
    protected void ADLogin_Authenticate(object sender, AuthenticateEventArgs e)
    {
        // i am not sure if i want to rewrite all of the AD stuff.
        bool useAD = (ConfigurationManager.AppSettings["UseActiveDirectory"].ToString() == "true") ? true : false;
        bool auth = false;

        if (!useAD)
        {
            auth = IsDatabaseUser(ADLogin.UserName, ADLogin.Password);
        }
        else // call base method?? (or something??)
        {

        }

        e.Authenticated = auth;
    }