简而言之,我创建了一个自定义成员资格提供程序和一个自定义成员。这是使用" old" .NET成员资格提供者系统现在我可以成功登录,系统也接受自定义成员。
注意:目前在会员提供商中实施的方法只有" ValidateUser(name,pass)"和" GetUSer(用户名,isonline)"
问题是,我无法从自定义成员获取任何信息。没有。我尝试的一切都失败了。我不认为列出我尝试过的东西甚至重要,谷歌搜索不会返回任何有用的东西。有趣的是我觉得世界上唯一一个有自定义成员的人,但显然我不能:/
如果有帮助,我正在使用Umbraco 7.5.2。
修改 好的,这是我尝试过的一件事:
Membership.GetUser()
显然在MVC4 +中没有用,我正在使用MVC 5.我当然也尝试将它转换为我的自定义成员类型,但它总是为空。
对于目前的Umbraco指南,他们都适用于Umbraco 7中的内置会员服务,这与旧的方式完全不同。 我的印象是,一旦用户登录,存储在用户/成员对象中的信息就可以在前端获得。
编辑2 我有以下解决方案,但它远非完美。在获取当前正在登录的用户时,在返回自定义成员资格用户之前,我将整个对象发送到会话,并获取如下信息:
@if (Members.IsLoggedIn())
{
Site.Extensions.TripleAMembershipUser tmpUser = new Site.Extensions.TripleAMembershipUser();
if (Session["currentUser"] != null)
{
tmpUser = (Site.Extensions.TripleAMembershipUser)Session["currentUser"];
<div><h1>@tmpUser.someCustomString</h1></div>
}
}