我正在与拥有现有ASP.NET Web应用程序的产品所有者合作进行一些报告。为了便于讨论,我们称之为“WebApp1。”
她要求我们提供DotNetNuke门户以提供论坛功能。
作为要求的一部分,DotNetNuke门户的主登录屏幕应根据“WebApp1”的用户数据库对用户进行身份验证。 “WebApp1”的现有用户表具有哈希密码。
由于我一直在研究这些要求,我发现MemberShipProvider模式和AuthenticationProvider似乎都满足了相同的要求。
从DotNetNuke的角度来看,这些提供商之间有什么区别?哪种模式引入的复杂性最低?
请注意我对DotNetNuke的体验有限。
请知道我感谢StackOverflow社区的帮助。
答案 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本身进行身份验证(这样,“主机”和“管理员”等用户也会这样做。)
我希望这有帮助!