[更新 - 已解决] 显然不再使用该表。找到了获取用户名的方法,如果已登录
@using Umbraco.Core.Security
...
var ticket = wrapper.GetUmbracoAuthTicket();
isLoggedIn = 0;
if (ticket!=null){
if(ticket.GetRemainingAuthSeconds() > 0){
isLoggedIn = 1;
}
loggedInUsername = ticket.Name.ToString();
}else{
loggedInUsername = "";
}
我开发了一个Web服务来更新一些非Umbraco数据(在新表中) 在Umbraco SQL db中。
虽然它不必安全,但我想执行一些基本检查,即调用Web服务的人以Umbraco用户身份登录(请注意,即使从前端调用Web服务也是如此) ,该人将作为后端用户登录,而不是前端成员。
我注意到Umbraco写了一个cookie
UMB_CONTEXT
根据http://www.theoutfield.co.uk/blog/2013/03/umbraco-cookies
存储对当前登录用户的Guid引用。随机 在登录时生成并存储在umbracoUserLogins数据库表中, 它允许您访问当前用户,而无需存储任何用户 cookie中的用户特定数据。
这将是理想的:我的Web服务可以使用cookie的值来查询umbracoUserLogins表,确认用户已登录以及用户是谁。
(是的,有人可以用他们自己的cookie来模拟这个,但不太可能猜测一个1,088个字符串!)
但是,我使用的是Umbraco 7.4并且无法在SQL数据库中找到此表 - 这现在已经消失了吗?
如果是这样,有任何想法在网络服务电话上验证用户会话吗?