我目前正在为我正在做的一个新项目设计一个会员/个人资料方案,我希望从其他人那里获得一些意见。
该项目是一个ASP.NET web应用程序,由于时间很短,我试图使用任何和所有内置的.NET框架组件,我可以。该网站可能会招待少于5000名用户。每个用户都有一个配置文件,其中自定义设置和对象将在两次访问之间保持不变。
我需要使用现有的Active Directory进行身份验证。由于AD模式不能扩展以保存新字段,因此我需要将用户设置和对象保存在不同的数据存储中。我还被告知ADAM可能不是一个可行的解决方案。
我希望将Active Directory成员资格提供程序用于我的身份验证方案,并将SQL配置文件提供程序用作用户配置文件数据存储。我不喜欢构建自定义配置文件提供程序,但如果需要的话,我不认为这会带来太大的问题。
我想知道这是不是一个可能的解决方案,如果是这样的话,有没有人幸运地使用了这种方法。
如有任何意见,我们将不胜感激。
谢谢。
发布于 2009-05-21 21:15:21
首先,我自己从来没有做过这件事。
有一个非常优秀的系列(14 !!)部分)由4 Guys from Rolla的Scott Mitchell关于ASP.NET 2.0成员资格、角色和配置文件提供者系统的整个主题。
根据我的理解,您应该能够通过使用web.config中的以下两个部分来配置您正在寻找的行为:
<!-- configure Active Directory membership provider -->
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider,
System.Web, Version=2.0.3600, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>
<!-- configure SQL-based profile provider -->
<profile defaultProvider="SqlProvider">
<providers>
<add name="SqlProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="SqlProfileProviderConnection"
applicationName="YourApplication" />
</providers>
<!-- specify any additional properties to store in the profile -->
<properties>
<add name="ZipCode" />
<add name="CityAndState" />
</properties>
</profile>
我认为这应该是可行的:-)
发布于 2011-03-26 01:41:09
除此之外,正如Marc回答的那样:
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider,
System.Web, Version=2.0.3600, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
您可能还需要添加
connectionStringName="ADService",
attributeMapUsername="sAMAccountName"
使用对应的连接字符串
<connectionStrings>
<add name="ADService" connectionString="LDAP://ServerIP" />
</connectionStrings>
如果您使用的是.net 4.0,则需要替换
Version=2.0.3600
使用
Version=4.0.0.0
所以最后,
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider"
connectionStringName="ADService"
type="System.Web.Security.ActiveDirectoryMembershipProvider,
System.Web, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
attributeMapUsername="sAMAccountName"/>
</providers>
</membership>
由于它被设置为默认值,因此可以被引用为:
MembershipProvider provider = Membership.Provider;
发布于 2011-04-25 23:18:33
谢谢你的信息,这对我很有帮助。此外,您可以在membership标记中设置默认提供程序,而不是使用MembershipProvider provider = Membership.Provider;
设置它。
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
我还写了一个小的how to,并下载到一个配置为使用AspNetActiveDirectoryMembershipProvider的Visual Studio项目和源代码。
ASP.NET Forms Based Authentication - using AspNetActiveDirectoryMembershipProvider
https://stackoverflow.com/questions/895002
复制相似问题