SimpleMembership이 UserId를 어딘가에 보관하는지 궁금하다.UserIdentity에 UserId를 유지할 수 있습니까? MVC4 SimpleMembership
나는 간단한 동작이 있습니다
[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)
그래서, 중복 한 쿼리를 - 첫 번째, 두 번째 WebSecurity.GetUserId(User.Identity.Name);
를 호출하여 역할을 얻을 수 있습니다. [Authorize]를 호출 한 후 UserId를 어딘가에 저장하는 효과적인 방법이 있습니까?
올바르게 이해하면 앱에 중복 된 검색어가 있지만 로그인 액션 직후입니다. WebSecurity.Login()을 사용하여 로그인하고 있습니까? – user1838937
내 편집을 확인하고 도움이되는지 확인하십시오. 나는 당신의 코멘트에 대한 편집을 보지 못했습니다. 예, 저는 WebSecurity.Login()을 사용하고 있습니다. 그 의미에서 나는 이중 쿼리를하고 있다고 가정합니다. – Eonasdan
저는이 솔루션을 좋아합니다. 투표를 할 수는 있지만 명성이 너무 낮습니다.) 승인 필터에서 파생 된 데이터를 사용할 방법이 없다면 실망 할 것입니다. – user1838937