我想知道 SimpleMembership 是否将 UserId 保留在某个地方,或者如果没有,一旦派生数据,如何强制它保留。
我有简单的动作:
[Authorize(Roles="User")]
public ActionResult Create()
{
var ownerId = WebSecurity.GetUserId(User.Identity.Name);
return View()
}
我的 MiniProfiler 说:
DECLARE @0 nvarchar(4) = N'NICK'
SELECT [UserId] FROM [UserProfile] WHERE (UPPER([UserName]) = @0)
DECLARE @0 int = 2
SELECT r.RoleName FROM webpages_UsersInRoles u, webpages_Roles r Where
(u.UserId = @0 and u.RoleId = r.RoleId) GROUP BY RoleName
DECLARE @0 nvarchar(4) = N'NICK'
SELECT [UserId] FROM [UserProfile] WHERE (UPPER([UserName]) = @0)
所以,我重复了对 UserId 的查询——首先是获取角色,其次是调用WebSecurity.GetUserId(User.Identity.Name);
. 调用 [Authorize] 后,是否有一种聪明的方法可以将 UserId 保存在某处?