Ldap nJupiter更改ADService Connectionstring@runtime
我们正在开发一个网站,当用户尝试登录时,需要指向不同的LDAP提供商(ADService ConnectionString) 我们的方法是查看他们的登录名example@domain.com并使用映射文件(可能是sqlServer数据库)将他们的登录名映射到他们的adservice提供者,然后获取连接字符串。然后像往常一样继续 在下面的示例代码中,我需要IsAuthenticated来根据正确的AdService连接字符串进行身份验证,我只是不确定何时何地告诉nJupiter DataAccess Ldap提供程序何时设置connectionstring。(通常对于nJupiter,它是在Web.Config文件中完成的-但我需要动态更改连接字符串) 因此,我们的login.aspx.cs页面包含以下代码:Ldap nJupiter更改ADService Connectionstring@runtime,ldap,ldapconnection,Ldap,Ldapconnection,我们正在开发一个网站,当用户尝试登录时,需要指向不同的LDAP提供商(ADService ConnectionString) 我们的方法是查看他们的登录名example@domain.com并使用映射文件(可能是sqlServer数据库)将他们的登录名映射到他们的adservice提供者,然后获取连接字符串。然后像往常一样继续 在下面的示例代码中,我需要IsAuthenticated来根据正确的AdService连接字符串进行身份验证,我只是不确定何时何地告诉nJupiter DataAcces
protected void Page_Load(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
if (!string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
{
Response.Redirect("~/AccessDenied.aspx");
}
}
}
nJupiter.DataAccess.Ldap支持在配置文件中同时配置多个服务器。我建议您在nJupiter.DataAccess.Ldap.config中配置所有要使用的服务器,如下所示:
<configuration>
<ldapServers>
<ldapServer value="MyServer1"><!-- config goes here --></ldapServer>
<ldapServer value="MyServer2"><!-- config goes here --></ldapServer>
</ldapServers>
</configuration>
<system.web>
<membership defaultProvider="MyProvider1">
<providers>
<clear/>
<add name="MyProvider1" ldapServer="MyServer1" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
<add name="MyProvider2" ldapServer="MyServer2" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
</providers>
</membership>
</system.web>
<system.web>
<membership defaultProvider="RedirctingMembershipProvider">
<providers>
<clear/>
<add name="RedirctingMembershipProvider" type="MyNameSpace.RedirctingMembershipProvider,MyAssembly" />
<add name="MyProvider1" ldapServer="MyServer1" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
<add name="MyProvider2" ldapServer="MyServer2" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
</providers>
</membership>
</system.web>
然后在web.config中将此提供程序注册为默认提供程序,如下所示:
<configuration>
<ldapServers>
<ldapServer value="MyServer1"><!-- config goes here --></ldapServer>
<ldapServer value="MyServer2"><!-- config goes here --></ldapServer>
</ldapServers>
</configuration>
<system.web>
<membership defaultProvider="MyProvider1">
<providers>
<clear/>
<add name="MyProvider1" ldapServer="MyServer1" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
<add name="MyProvider2" ldapServer="MyServer2" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
</providers>
</membership>
</system.web>
<system.web>
<membership defaultProvider="RedirctingMembershipProvider">
<providers>
<clear/>
<add name="RedirctingMembershipProvider" type="MyNameSpace.RedirctingMembershipProvider,MyAssembly" />
<add name="MyProvider1" ldapServer="MyServer1" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
<add name="MyProvider2" ldapServer="MyServer2" type="nJupiter.DataAccess.Ldap.LdapMembershipProvider,nJupiter.DataAccess.Ldap" />
</providers>
</membership>
</system.web>