我在Our Umbraco forums上提出了这个问题,但是我想通过在这里发布相同的问题来增加获得解决方案的机会。
我遇到的问题是,在Razor宏中,我无法获取正在访问该网站的当前Member
。我尝试了以下方法:
还有另一种方法可以让当前的Member
了解上述方法在我的情况下是如何工作的吗?
答案 0 :(得分:12)
var m = Membership.GetUser();
这应该有效,只是自己在4.7.1验证了它;如果您没有以成员身份登录,它将返回NULL,但是当您登录时,它应该可以获得您想要的内容。
答案 1 :(得分:4)
如果NULL是一个问题,那么@ E.J.Brennan只是略有变化,您可以在尝试GetUser()之前检查您是否已登录:
if (umbraco.library.IsLoggedOn())
{
m = Membership.GetUser();
}
答案 2 :(得分:3)
从v7开始,您可以使用MembershipHelper
@Members.CurrentUserName
@Members.GetCurrentMember()
@Members.GetCurrentMemberId()
答案 3 :(得分:0)
现在,它甚至更加容易,在surfaceController中,您只可以使用一行:
var member = ApplicationContext.Current.Services.MemberService.GetById(Members.GetCurrentMemberId());
如果无法访问会员MembershipHElper:
var memberShipHelper = new MembershipHelper(UmbracoContext.Current);
var member = ApplicationContext.Current.Services.MemberService.GetById(memberShipHelper.GetCurrentMemberId());