【发布时间】:2011-10-31 08:51:02
【问题描述】:
我正在使用一个 createuserwizard 控件。在 CreatedUser 事件中,我放置了此代码以将用户添加到角色。
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
if (!Roles.IsUserInRole("Test"))
{
var User= Membership.GetUser();
Roles.AddUserToRole(User.UserName, "Test");
}
string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/";
}
Response.Redirect(continueUrl);
}
我也想知道FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */); 是什么意思,它的用途是什么,为什么Membership.GetUser() 为空。
【问题讨论】:
-
我认为默认的会员服务提供商不会在您每次检查登录用户时检查 cookie,而是在较早的请求处理阶段检查它。对于与您
SetAuthCookie相同的请求,它将返回null,但下一个请求它将看到用户。我认为这是迟钝的,正在寻找一种简单的方法来解决它......
标签: asp.net security asp.net-membership