我想在登录时设置一个包含用户时区的cookie。 AccountController.LogOn()似乎是最好的地方。但是,我还不能在那里读取用户的配置文件,因为我猜你只能在方法完成时访问配置文件。因此,此代码返回一个空字符串:
Dim timeZone = HttpContext.Profile("TZ").ToString
用户完全登录后,上述代码将返回正确的TimeZone。
一种解决方案是读取试图在AccountController.LogOn()中登录的用户名的配置文件:
ProfileCommon profile = Profile.GetProfile(username); // FAILS
然而,这不起作用。
那么,如果他们没有登录,我如何阅读给定用户的个人资料?
答案 0 :(得分:8)
这看起来并不明显,但却是一个获取资料:
ProfileBase profile = ProfileBase.Create(HttpContext.Profile.UserName, true);
返回现有实例。
答案 1 :(得分:1)
除了Mathias的回答之外,您还可以将其转换为您键入的个人资料:
ProfileCommon profile = (ProfileCommon)ProfileBase.Create(username, true);
此外,ProfileBase.Create的文档位于MSDN上。