.net active directory成员资格提供程序和用户数据

.net active directory成员资格提供程序和用户数据,.net,membership,activedirectorymembership,.net,Membership,Activedirectorymembership,如果我使用active directory作为用户存储,如何将数据库中的信息与特定用户关联?我应该在对它们进行身份验证后将它们插入数据库(这对我来说似乎是多余的),还是只使用ad成员资格提供程序进行身份验证,而我应该使用SQL成员资格提供程序?成员资格提供程序只涉及身份验证。授权(与身份验证不同)由您的逻辑执行,可以选择使用角色提供程序 您可以将Active Directory用于角色,但需要使用外部实现,因为ASP.NET不包括现成的实现(例如) 如果您使用AD作为成员身份,但希望跟踪数据库中

如果我使用active directory作为用户存储,如何将数据库中的信息与特定用户关联?我应该在对它们进行身份验证后将它们插入数据库(这对我来说似乎是多余的),还是只使用ad成员资格提供程序进行身份验证,而我应该使用SQL成员资格提供程序?

成员资格提供程序只涉及身份验证。授权(与身份验证不同)由您的逻辑执行,可以选择使用角色提供程序

您可以将Active Directory用于角色,但需要使用外部实现,因为ASP.NET不包括现成的实现(例如)

如果您使用AD作为成员身份,但希望跟踪数据库中的用户,那么您需要使用AD用户的
objectGUID
属性,因为它是唯一且不可变的,其他属性,如
cn
objectSid
是唯一但不可变的


就我个人而言,我不会在我所从事的任何ASP.NET项目中使用成员资格/角色/配置文件功能,因为它们需要特殊处理,这会在应用程序中创建一个逻辑上独立的关注点,而不总是与应用程序中的所有其他内容相匹配,特别是当您对实体使用ORM时。即使您实现自己的提供者以避免应用程序内部实体模型的复杂性,您仍然会遇到问题,因为
成员身份
对象向您的模型公开了一个新的接口,您仍然需要在现有用户管理系统的基础上实现该接口。因此,我只建议对超基本网站使用会员资格/角色/配置文件。

会员资格提供商只关心身份验证。授权(与身份验证不同)由您的逻辑执行,可以选择使用角色提供程序

您可以将Active Directory用于角色,但需要使用外部实现,因为ASP.NET不包括现成的实现(例如)

如果您使用AD作为成员身份,但希望跟踪数据库中的用户,那么您需要使用AD用户的
objectGUID
属性,因为它是唯一且不可变的,其他属性,如
cn
objectSid
是唯一但不可变的


就我个人而言,我不会在我所从事的任何ASP.NET项目中使用成员资格/角色/配置文件功能,因为它们需要特殊处理,这会在应用程序中创建一个逻辑上独立的关注点,而不总是与应用程序中的所有其他内容相匹配,特别是当您对实体使用ORM时。即使您实现自己的提供者以避免应用程序内部实体模型的复杂性,您仍然会遇到问题,因为
成员身份
对象向您的模型公开了一个新的接口,您仍然需要在现有用户管理系统的基础上实现该接口。因此,我只建议对超基础网站使用会员资格/角色/个人资料。

谢谢您的回复。除了超基本的网站,你还推荐什么路径?@Robert我不能说,我对你的要求一无所知:)(但通常是从我首先敲定应用程序架构和数据库设计开始的)。谢谢你的回复。除了超基本的网站,你还推荐什么路径?@Robert我不能说,我对你的要求一无所知:)(但通常是从我首先敲定应用程序架构和数据库设计开始的)。