사용자, 계정 관리자 및 관리자의 세 가지 역할을 가진 MVC 프로젝트가 있습니다.관리자가 iframe을 사용하여 사용자로 가장 할 수 있도록 허용
관리자는 사용자와 계정 관리자를 완전히 제어 할 수있는 자체 MVC 영역을 가지고 있습니다. 관리자가 사이트를 모든 사용자 또는 계정 관리자로 볼 수있는 기능을 구현하려고합니다.
사이트의 관리 영역에는 사용자 및 계정 관리자 목록이 있습니다. 목록에는 각 레코드에 대한 "사용자로 사이트보기"버튼이 있습니다.
내가 전에 같이 일을 해본 적이없는,하지만ViewAs
컨트롤러 액션이 현재과 같이 선택된 사용자의 정보와 함께 세션을 생성하도록 설정되어
:이 작업이있다
ViewBag.SiteSession = Session["SiteSession"] = new SiteSession()
{
ID = user.ID,
AccountID = user.AccountID,
DisplayName = user.DisplayName,
IsManager = user.IsAdmin,
IsAdmin = false
};
보기 관련에 string
로 정의 모델, 그리고 아무것도하지만, 그래서 같은 src
속성으로 모델과 iframe이는 :
@model string
<iframe src="@Model" >
</iframe>
난 할 노력하고있어 요청했다 사이트의 어느 부분 렌더링 이 iframe에서 ed. 관리자가 "사용자로보기"를 클릭하면 집으로 이동하고 싶습니다. URL은 다음 호출을 통해 생성됩니다.
Url.Action("Index", "Home", new { Area = "" }));
이 영역은 관리 영역의 홈 렌더링을 피하기 위해 아무 것도 설정되지 않습니다.
현재로서는 작동하지 않습니다. 나는 이미 어디에서부터 시작해야할지 모르겠다.
나는 어떤 제안이있어 찾고있다. 이것이 쉬운 일로 보이지 않기 때문에 모든 도움을 크게 받으실 수 있습니다.
당신이 도울 수있는 방법을 모르는 경우,이 질문을 할 수있는 사람에게 할 수 있으면 감사하게 생각합니다.
다시 감사드립니다.
: 관리자 대화 상자를 닫으면
, 서버는 세션을 파괴의
ViewAs
컨트롤러에서End
조치를 호출 당신이 그것을 유추 한 곳. 본질적으로 사용자를 가장하고 싶습니다. – Kehlan원래 인터페이스를 그대로 유지하면서 iframe에서 개별적으로 표시하므로 "미리보기"라고했습니다. 어쩌면 내 용어가 틀렸을 수도 있지만, 가장이라는 의미는 원래 인터페이스가 가장 된 사용자로 표시되도록 변경하는 것입니다 (가장을 중지하는 기능이 유일한 차이점 임). 요청 매개 변수가없는 서버에서 iframe/enclosing 창에서 요청한 요청의 차이를 알 수있는 방법이 없기 때문에 단계별로 가장하는 것이 어려워집니다. – tvanfosson