0

我有一个用于创建新用户的 MVC 控制器操作。我正在尝试存储新用户的其他详细信息,例如FullName.

问题是Profile针对当前经过身份验证的用户,在我的情况下是管理员。如何引用新创建用户的个人资料?

var user = Membership.CreateUser(newUser.Username, newUser.Password, newUser.Email);
Profile.SetPropertyValue("fullname", newUser.FullName); //wrong - stored against the admin that is creating the user
user.??? //I do have the user, but can I get the profile?
4

1 回答 1

2

创建用户会将其添加到用户列表中。但是,这不会对当前请求的新用户进行身份验证或授权。您还需要在当前请求上下文中对用户进行身份验证。用户创建后无法立即访问配置文件。

如果要在同一请求中为新创建的用户创建 Profile,则需要调用HttpContext.Current.Profile.Initialize(userName, true). HttpContext.Profile将为您提供ProfileBase 对象,然后调用Initialize()方法将初始化userName您传递给它的配置文件。然后您可以填充新初始化的配置文件并继续您的更改并保存它。

使用HttpContext.Current.Profile,当需要在创建后立即创建/访问配置文件时。在其他请求中,您可以使用/继续使用ProfileBase.Create(userName)来获取指定用户名的配置文件实例。

但是,如果您在创建后立即对用户进行身份验证,您将能够以最简单的方式访问配置文件。

于 2013-09-05T11:27:58.000 回答