在DotNetNuke中,身份验证提供者和成员提供者之间有什么区别?

时间:2013-02-11 15:16:08

标签: asp.net dotnetnuke dotnetnuke-6

我正在与拥有现有ASP.NET Web应用程序的产品所有者合作进行一些报告。为了便于讨论,我们称之为“WebApp1。”

她要求我们提供DotNetNuke门户以提供论坛功能。

作为要求的一部分,DotNetNuke门户的主登录屏幕应根据“WebApp1”的用户数据库对用户进行身份验证。 “WebApp1”的现有用户表具有哈希密码。

由于我一直在研究这些要求,我发现MemberShipProvider模式和AuthenticationProvider似乎都满足了相同的要求。

从DotNetNuke的角度来看,这些提供商之间有什么区别?哪种模式引入的复杂性最低?

请注意我对DotNetNuke的体验有限。

请知道我感谢StackOverflow社区的帮助。

2 个答案:

答案 0 :(得分:0)

身份验证仅处理登录(您是谁{username},并且您拥有正确的密码)。

会员处理更多像授权(现在我知道你是谁,你被允许这样做)

答案 1 :(得分:0)

----我为PowerDNN.com工作----

嗨迈克尔, 几个月前,我写了一个会员提供商做类似的事情,我们将DotNetNuke网站连接到基于Linux的后端系统进行授权。我觉得我有点作弊,但我的解决方案非常好。

这是我做的: 1)我继承了DotNetNuke的会员提供者。 2)我用自定义代码覆盖了“登录”功能。 2.1)它在远程系统中找到用户。 2.2)它验证远程用户的凭据。 2.3)如果用户尚不存在,则在DNN中创建用户。 2.4)它将任何权限同步到DNN 2.5)我将用户登录。

作为一个FYI,当我创建本地用户时,我给它一个前缀,如“CUSTOM - #####”,其中#####是他们在远程系统中的ID。这样我就可以轻松地告诉哪些用户是“常规”dnn用户以及哪些用户是同步用户。

此外,如果我在远程数据库中找不到该用户,那么我会对DNN本身进行身份验证(这样,“主机”和“管理员”等用户也会这样做。)

我希望这有帮助!