ASP.NET MVC のビューでは、次のようにプロファイルとプロファイル メンバーにアクセスできます。
<%= Profile.Name %> - <%= Profile.Karma %>
しかし、どうすれば Profile 変数を設定できますか? HttpContext.Current.Profile にあるようです。次のような CurrentUser メソッドを持つカスタム Profile クラスを作成しました。
static public Profile CurrentUser {
get {
return (Profile) (ProfileBase.Create(Membership.GetUser().UserName));
}
}
Web.config でそのクラスを指定しています。
<profile inherits="MyProject.Models.Profile" defaultProvider="AspNetSqlProfileProvider" enabled="true">
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
これ:
var p = CurrentUser.Profile
プロファイルは正常に表示されますが、次のように設定することはできません。
HttpContext.Profile = CurrentUser.Profile;
HttpContext.Profile は読み取り専用であるためです。エラーが発生します:
エラー 18 プロパティまたはインデクサー 'System.Web.HttpContextBase.Profile' を割り当てることができません -- 読み取り専用です C:...\Controller.cs 26 17 MyProject
また、ログインしているユーザーの名前を通常の方法で右上に表示できるように、すべてのビューにプロファイルを割り当てる必要があります。どうすればいいですか?