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);
ます。[承認]を呼び出した後、UserIdをどこかに保存するスマートな方法はありますか?