积极答复者
使用FormsAuthentication+Profile的时候遇到一个很麻烦的问题

问题
-
在登录页面中,用户进行了登录,且成功登录。我使用这样的代码为用户创建票据:
FormsAuthentication.SetAuthCookie("Hugo", false);
bool isLogin = this.User.Identity.IsAuthenticated;
在我的web应用程序中,在用户登录成功后我需要使用profile保存一些信息。为profile设置值的代码应该放在什么地方呢?我不能放在FormsAuthentication.SetAuthCookie("Hugo", false);的下面,因为这个时候服务器段还不认识当前的用户,他的UserName还是由服务器段分配的。我应该把这段代码放在什么地方呢?
郭鹏
答案
-
你好 你可以在MigrateAnonymous事件中实现
public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args) { ProfileCommon anonymousProfile = Profile.GetProfile(args.AnonymousID); Profile.ZipCode = anonymousProfile.ZipCode; Profile.CityAndState = anonymousProfile.CityAndState; Profile.StockSymbols = anonymousProfile.StockSymbols; //////// // Delete the anonymous profile. If the anonymous ID is not // needed in the rest of the site, remove the anonymous cookie. ProfileManager.DeleteProfile(args.AnonymousID); AnonymousIdentificationModule.ClearAnonymousIdentifier(); }
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已编辑 Raymond TangModerator 2009年8月31日 9:22 修正
- 已标记为答案 KeFang Chen 2009年9月2日 1:57
-
1987raymond 您好,多谢你的指导,请问这段代码在什么情况下会被执行呢?我放在什么地方?Login页面的后台cs代码中?还是什么地方?
郭鹏
Global.asax文件中 中文叫 全局应用程序类- 已标记为答案 KeFang Chen 2009年9月2日 1:57
-
lz,您好,
也可参考我之前关于该问题的讨论,有完整的例子,但没有采用profile,可以看出完整的验证过程:
http://social.microsoft.com/Forums/zh-CN/295/thread/19c42801-f25c-408a-91f7-485a70cf5c58- 已标记为答案 KeFang Chen 2009年9月2日 1:57
全部回复
-
你好 你可以在MigrateAnonymous事件中实现
public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args) { ProfileCommon anonymousProfile = Profile.GetProfile(args.AnonymousID); Profile.ZipCode = anonymousProfile.ZipCode; Profile.CityAndState = anonymousProfile.CityAndState; Profile.StockSymbols = anonymousProfile.StockSymbols; //////// // Delete the anonymous profile. If the anonymous ID is not // needed in the rest of the site, remove the anonymous cookie. ProfileManager.DeleteProfile(args.AnonymousID); AnonymousIdentificationModule.ClearAnonymousIdentifier(); }
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已编辑 Raymond TangModerator 2009年8月31日 9:22 修正
- 已标记为答案 KeFang Chen 2009年9月2日 1:57
-
1987raymond 您好,多谢你的指导,请问这段代码在什么情况下会被执行呢?我放在什么地方?Login页面的后台cs代码中?还是什么地方?
郭鹏
Global.asax文件中 中文叫 全局应用程序类- 已标记为答案 KeFang Chen 2009年9月2日 1:57
-
lz,您好,
也可参考我之前关于该问题的讨论,有完整的例子,但没有采用profile,可以看出完整的验证过程:
http://social.microsoft.com/Forums/zh-CN/295/thread/19c42801-f25c-408a-91f7-485a70cf5c58- 已标记为答案 KeFang Chen 2009年9月2日 1:57
-
1987raymond 您好,多谢你的指导,请问这段代码在什么情况下会被执行呢?我放在什么地方?Login页面的后台cs代码中?还是什么地方?
郭鹏
Global.asax文件中 中文叫 全局应用程序类
正解~~~~
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond