これは本当に簡単だと思いましたが..
さまざまなプロパティを持つユーザーとメンバータイプを作成しました。メンバーオブジェクトを介してプロパティにアクセスしようとしても、何も得られませんでした。
//メンバーmは現在のユーザーです
例えば。プロパティs=m.getProperty( "PreferdUserName"); 無効である
m.getPropertiesのカウントはゼロです。
明らかな何かを見逃したことがありますか?
これは本当に簡単だと思いましたが..
さまざまなプロパティを持つユーザーとメンバータイプを作成しました。メンバーオブジェクトを介してプロパティにアクセスしようとしても、何も得られませんでした。
//メンバーmは現在のユーザーです
例えば。プロパティs=m.getProperty( "PreferdUserName"); 無効である
m.getPropertiesのカウントはゼロです。
明らかな何かを見逃したことがありますか?
スペルミスはありますか?
「PreferdUserName」は「PreferredUserName」にすることができます。
それ以外は正しく見えます。
結局、私はメンバーのプロパティを別のデータベーステーブルに保存することにしました。これはとにかく私が必要とするものに近いものです。カスタムmsbuildタスクを使用してumbracoの外部からmemberTypeを作成した方法と関係があると思います。
独自のクラスを作成して、ProfileBaseを拡張できます。以下のコードは、Umbraco内で作成したプロパティを公開します。たとえば、umbracoエイリアスは「first_name」です。
[SettingsAllowAnonymous(false)]
public string FirstName
{
get
{
var o = base.GetPropertyValue("first_name");
if (o == DBNull.Value)
{
return string.Empty;
}
return (string)o;
}
set
{
base.SetPropertyValue("first_name", value);
}
}
次に、そのようなプロパティにアクセスできます...
string firstName = ((MemberProfile)HttpContext.Current.Profile).FirstName;
これをすべて設定する方法の詳細については、こちらをご覧ください。
http://www.aaron-powell.com/posts/2010-04-07-umbraco-members-profiles.html
Umbracoの現在のユーザー以外の誰かのメンバーの詳細を取得し、そのユーザー名を取得する必要がある場合、これは他の誰かに役立つ可能性があります。
var TheirUsername = "s12345";
Member MemberFind = new Member(Convert.ToInt32(Membership.GetUser(***TheirUsername***).ProviderUserKey));
//now use this value
var NameOfUser = MemberFind.Text;
var EmailAddress = MemberFind.Email;
試す
Property s = m.getProperty("PreferdUserName").value;
それでもうまくいかない場合は、メンバーのプロパティに関するこのすばらしい投稿を確認してください
http://legacy.aaron-powell.com/blog/july-2009/umbraco-member-profiles.aspx