在网站上,我需要整合会员资格和身份验证。所以我想使用ASP.NET成员资格的功能,但我有其他自定义的东西,一个“用户”必须做。
所以我坐在这里用我的铅笔和纸,绘制线为我的领域模型…我如何最好地利用ASP.Net会员资格,但扩展它来满足我的需要?
我应该创建一个继承自MembershipUser的类,并使用自己的属性和方法进行扩展(并将其保存在一个单独的表中)。还是应该让MembershipUser成为我的自定义User / Client对象的一个属性?
这样做是一个很好的固定方法?
解决方法
我已经考虑过了,有两种方式似乎是合适的(当然还有更多的方法使它工作)。
自定义会员提供商
您更改会员提供商以使用您自己的,并使用您的User对象来存储所有信息。
这个问题是它涉及到很多重新实现已经被Asp.Net处理得很好的东西。好的是,您拥有一个包含所有详细信息的单个User对象。
使用此方法,您将使用原始的成员资格提供商来处理用户名和密码,但是通过使用服务来将您自己的User对象与用户名称类似的用户名链接起来。
这很容易设置,您只需要创建一个将被使用的服务:
string userName = "Jon Skeet"; User user = new UserManagementServices().GetUserByUserName(userName);