1

我们正在建立一个单点登录系统来处理我们不同系统之间的身份验证和授权(几乎所有这些系统都不是 DNN 系统)。

这个想法是中央身份验证系统将为用户提供一个链接,该链接将他们重定向到带有身份验证令牌的 DotNetNuke 系统。然后我需要获取该身份验证令牌,验证它是否合法,如果是,则将该用户登录到 DNN。这个工作流程的问题是我不知道用户的密码。

以前,当我创建自定义登录界面时,我通过调用以下方式登录用户:

var portalSettings = PortalSettings.Current;
UserController.UserLogin(portalSettings.PortalId, username, password, string.Empty, portalSettings.PortalName, ip, ref loginStatus, true);

如果我不知道他们在 DNN/Asp.net 表单身份验证系统中的密码是什么,这显然是行不通的。

由于这不是一个新系统,而是目前在生产中使用的没有 SSO 的系统,我不能只将每个人的密码设置为“pass1234”并要求他们仅通过 SSO 方法登录。

如何告诉 DotNetNuke 在不知道确切密码的情况下以用户身份登录?

4

1 回答 1

3

UserController 有一个额外的重载,它采用“UserInfo”对象。

用于UserController.GetUserByName从系统中获取实际用户,然后您可以将该对象传递给 Userlogin 方法,一切顺利!

于 2013-04-27T16:00:29.130 回答