如何在不使用标准登录框的情况下通过电子邮件和登录用户验证Umbraco用户-Umbraco 7.7.9

时间:2018-09-06 10:13:43

标签: c# api web umbraco autologin

我正在尝试实现“单点登录”功能,即用户使用用户名和密码登录网站。然后,我想使用本地令牌中的那些凭据,并应要求允许用户使用在Umbraco中开发的另一个项目。因此,如果用户单击网站上的GetAccess按钮,则他应该能够登录并自动查看Umbraco后端,而无需从Umbraco标准登录窗口再次登录。

我有一个用户登录的网站。用户登录后,我使用angularjs将useremail从本地令牌传递到Umbraco WebAPI。 (效果很好)

API通过$ Http.Post接收角度请求,并使用Umbraco.findByEmailAsync(loginModel.Username).在后​​端验证用户方法在Umbraco中找到用户

如果找到用户记录且结果为成功,则我使用var result = await signInManager.PasswordSignInAsync(user.UserName, loginModel.Password, isPersistent: true, shouldLockout: false);返回始终为true的密码。

,然后我使用UmbracoContext.Security.PerformLogin(user.Id);在后​​端启用当前用户登录,而无需使用Umbraco标准登录窗口。 **这部分返回成功,但似乎用户仍未登录。

我还使用FormsAuthentication.SetAuthCookie(user.UserName, true);在浏览器中设置了用户Cookie

然后我将控件重定向到本地umbraco url http://localhost:57933/umbraco/#/login,以查看用户是否可以看到Umbraco后端,但在浏览器中却看到了Umbraco标准登录框。似乎用户根本没有登录。 / p>

我不知道缺少什么以及应该触发什么功能...

注意:我正在按照帖子中的建议使用UmbracoCustomOwinStartup类。 https://our.umbraco.com/forum/extending-umbraco-and-using-the-api/85076-detect-backoffice-user-login-and-logout

谢谢。

0 个答案:

没有答案