ASP.NET中的多种登录模式-需要建议

ASP.NET中的多种登录模式-需要建议,asp.net,login,Asp.net,Login,正在寻找有关当前支持基于active directory登录并使用内置asp登录组件的webapp的位置的建议 问题是,我们希望能够选择使用active directory登录或使用本地数据库中存储的数据进行“正常”登录 我只是想说清楚。在每个已安装的系统上,它将是一个或另一个,所以我不是问如何检查每个登录atempt 基本流程: Determine which login mode is set if active directory load active directory l

正在寻找有关当前支持基于active directory登录并使用内置asp登录组件的webapp的位置的建议

问题是,我们希望能够选择使用active directory登录或使用本地数据库中存储的数据进行“正常”登录

我只是想说清楚。在每个已安装的系统上,它将是一个或另一个,所以我不是问如何检查每个登录atempt

基本流程:

Determine which login mode is set
  if active directory
    load active directory login form
    validate login info against active directory
    login to system
  else if normal login
    load default login form
    validate login info against database
    login to system
我对asp登录组件缺乏了解可能是这里的问题,但我不确定如何让登录组件知道在哪个登录模式下运行验证?登录表单看起来就像一个黑匣子,这让我在执行如此重要的任务时有点不安

这能做到吗

或者


我是否应该为系统编写一个自定义登录并使用它?

在这种情况下,登录控件将是您的朋友,因为它只是利用ASP.Net成员资格提供程序模型。您根本不需要更改应用程序

您只需在web.config文件中指定要使用的身份验证模式。当然,这可以在一台机器一台机器的基础上进行设置。因此,对于您的active directory计算机:

<connectionStrings>
  <add name="ADConnectionString" connectionString="LDAP://testdomain.test.com/CN=Users,DC=testdomain,DC=test,DC=com" />
 </connectionStrings>

<membership defaultProvider="MyADMembershipProvider">
  <providers>
    <add
       name="MyADMembershipProvider"
       type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, 
             Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       connectionStringName="ADConnectionString"
       connectionUsername="testdomain\administrator" 
       connectionPassword="password"/>
  </providers>
 </membership>

.  

然后,对于要对数据库进行身份验证的计算机,只需编写一个自定义成员资格提供程序,即可对数据库进行身份验证。它非常简单,您只需要实现一种方法。您可以从这里开始:。
这里还有一个很好的例子,只需最少的代码和简单的设置步骤:

如果使用表单身份验证,您可以根据active directory和数据库检查用户,如果其中一个返回肯定值,则将表单身份验证设置为true。

是和否


登录组件利用成员资格提供程序类。您需要的是为自己编写一个Active Directory版本,并告诉ASP.Net查看它的AD,或查看SQLMembershipProvider如果使用数据库

ASP.Net附带的Active Directory成员资格提供程序,则不需要为其编写任何代码。