如何在我的领域模型中实现ASP.NET会员制供应商

 2023-02-16    316  

问题描述

在一个网站上,我需要集成成员资格和身份验证.所以我想使用ASP.NET成员资格的功能,但我有其他自定义的东西,即”用户”必须做.

所以我坐在这里用铅笔和纸,为我的域模型绘制线条……以及如何最好地利用ASP.NET成员资格,但延长它以填补我的需求?

如何在我的领域模型中实现ASP.NET会员制供应商

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

是什么良好的解决方法?

我已经想到了它,并且有两种方式似乎适合(当然还有更多方法来使它工作).

自定义会员提供者

更改会员提供程序以使用自己的用户并使用您的用户对象存储所有信息.

这个问题是它涉及大量重新实现了由ASP.NET处理的东西.好处是你有一个包含所有细节的用户对象.

来自会员用户的链接到您的用户

使用此方法,您将使用原始成员资格提供程序来处理用户名和密码,但您将自己的用户对象与此一个类似于用户名的内容,例如使用服务.

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

string userName = "Jon Skeet";
User user = new UserManagementServices().GetUserByUserName(userName);

其他推荐答案

我最终编写了自己的会员提供者,并在现在的3个独立解决方案中实施了.它非常简单,更优雅,而不是将用户链接到隶属议员(我也尝试过).

阅读…:

为asp.net网站安全创建自定义会员提供程序

如果你想了解更多,请观看这个视频(用sourcecode).

其他推荐答案

我已经扩展了隶属时间,并创建了自己版本的SQLMembershipprovider来映射到我现有的域,现在在生产中的工作中的工作井.

empersialUser本质上是对我的用户表的视图.我的扩展隶属用户类包括配置文件/帐户样式属性,而不是使用默认的SQLProfileProvider系统,这有点脆弱.

我无法使用现有的会员表或Sprocs,而是写自己的.例如,SQLMembershipProvider使用GUID作为不透明键,但生产系统使用普通旧int.所有日期都是UTC等.

通过用户域未通过成员资格方法访问所有额外的用户功能.

hth.

以上所述是小编给大家介绍的如何在我的领域模型中实现ASP.NET会员制供应商,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33862.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。