Umbraco - 访问自定义成员属性
Umbraco - Accessing custom member properties
我目前有这段代码用于测试目的,它有效:
@if (Umbraco.MemberIsLoggedOn())
{
var user = System.Web.Security.Membership.GetUser();
if (user != null)
{
var m = ApplicationContext.Services.MemberService.GetByUsername(user.UserName);
var testProperty = "";
if (m.HasProperty("testProperty") && m.GetValue("testProperty") != null)
{
testProperty = m.GetValue("testProperty").ToString();
}
<p>User: @user.UserName is logged in</p>
<p>Test property: @testProperty</p>
}
}
我的问题是:这是最简单的方法吗?似乎没有必要使用 MemberService 获取另一种类型的用户(IMember 而不是 MembershipUser)只是为了访问自定义属性。但是我在 MembershipUser 上看不到任何访问自定义属性的方法。我只是错过了什么吗?或者这就是你的本意?
编辑:
根据下面@Tim 的回答,下面的代码要好得多:
@if (Umbraco.MemberIsLoggedOn())
{
var currentUser = Members.GetCurrentMember();
if (currentUser != null)
{
var testProperty = currentUser.GetPropertyValue<string>("testProperty");
<p>User: @currentUser.Name is logged in</p>
<p>Test property: @testProperty</p>
}
}
理论上你应该能够做到:
@Members.GetCurrentMember()
当前成员应该return为IPublishedContent,然后您可以像访问已发布内容一样访问成员属性,例如GetPropertyValue("propertyAlias")
.
我目前有这段代码用于测试目的,它有效:
@if (Umbraco.MemberIsLoggedOn())
{
var user = System.Web.Security.Membership.GetUser();
if (user != null)
{
var m = ApplicationContext.Services.MemberService.GetByUsername(user.UserName);
var testProperty = "";
if (m.HasProperty("testProperty") && m.GetValue("testProperty") != null)
{
testProperty = m.GetValue("testProperty").ToString();
}
<p>User: @user.UserName is logged in</p>
<p>Test property: @testProperty</p>
}
}
我的问题是:这是最简单的方法吗?似乎没有必要使用 MemberService 获取另一种类型的用户(IMember 而不是 MembershipUser)只是为了访问自定义属性。但是我在 MembershipUser 上看不到任何访问自定义属性的方法。我只是错过了什么吗?或者这就是你的本意?
编辑: 根据下面@Tim 的回答,下面的代码要好得多:
@if (Umbraco.MemberIsLoggedOn())
{
var currentUser = Members.GetCurrentMember();
if (currentUser != null)
{
var testProperty = currentUser.GetPropertyValue<string>("testProperty");
<p>User: @currentUser.Name is logged in</p>
<p>Test property: @testProperty</p>
}
}
理论上你应该能够做到:
@Members.GetCurrentMember()
当前成员应该return为IPublishedContent,然后您可以像访问已发布内容一样访问成员属性,例如GetPropertyValue("propertyAlias")
.