如何在我的域模型中实现ASP.NET成员资格提供程序

Kje*_*sen 20 architecture asp.net asp.net-membership

在网站中,我需要集成成员身份和身份验证.所以我想使用ASP.NET Membership的功能,但我有其他自定义的东西,"用户"必须这样做.

所以我坐在这里用我的铅笔和纸,为我的领域模型画线......我怎样才能最好地利用ASP.Net会员资格,但是扩展它以满足我的需求?

我应该创建一个继承自MembershipUser的类,并使用我自己的属性和方法扩展它(并将其保存在单独的表中).或者我应该让MembershipUser成为我的自定义用户/客户端对象的属性?

这样做有什么好办法?

mbi*_*ard 11

我已经考虑过了,并且有两种方法看起来合适(当然还有更多方法可以使它工作).

定制会员提供商

您更改成员资格提供程序以使用您自己的成员资格提供程序并使用您的User对象存储所有信息

这个问题是它涉及很多重新实现Asp.Net已经很好处理的事情.好消息是你有一个包含所有细节的User对象.

从会员用户链接到您的用户

使用此方法,您将使用原始成员资格提供程序来处理用户名和密码,但您可以使用服务将自己的User对象与用户名称链接起来.

这很容易设置,你只需要创建一个像这样使用的服务:

string userName = "Jon Skeet";
User user = new UserManagementServices().GetUserByUserName(userName);
Run Code Online (Sandbox Code Playgroud)


Kje*_*sen 7

我最终编写了自己的会员资格提供者,现在已经在3个独立的解决方案中实现了这一点.它非常简单,比将用户链接到MembershipUser(我也尝试过)更加优雅.

读这个...:

为ASP.NET网站安全创建自定义成员资格提供程

如果您想了解更多信息,请观看此视频(包含源​​代码).