예를 들어 사용자가 색인 페이지를 열면 로그인 한 사용자가 보는 콘텐츠와 다른 콘텐츠가 표시됩니다.인증을 기반으로 다른보기를 표시하려면 어떻게해야합니까? asp.net mvc
내가 어떻게 달성 할 수 있습니까? 어떤 종류의 주석이 필요합니까?
예를 들어 사용자가 색인 페이지를 열면 로그인 한 사용자가 보는 콘텐츠와 다른 콘텐츠가 표시됩니다.인증을 기반으로 다른보기를 표시하려면 어떻게해야합니까? asp.net mvc
내가 어떻게 달성 할 수 있습니까? 어떤 종류의 주석이 필요합니까?
_ 레이아웃보기 또는 부분보기를 사용해 보셨습니까? 이 처리하는 하나 개 이상의 방법이 있습니다
...
당신은 컨트롤러 또는 당신에게보기의를 그것을 처리합니다. 이상적으로 나는 그 선택이 당신이 보여주고 싶은 것과 그렇지 않은 경우에 따라 달라질 것이라고 생각합니다.
Function Index()As ActionResult
If Request.IsAuthenticated Then
' Logged in is TRUE
Return View(LoggedInUserContentModel)
Else
' Logged in is FALSE
Return View(SiteGuestUserContentModel)
End If
End Function
당신이보기에 그것을 처리 할 경우
가 .... 가 직접<% If Request.IsAuthenticated Then %>
<!-- User is Logged In -->
Welcome <b><%: Page.User.Identity.Name %></b>!
[ <%: Html.ActionLink("Log Off", "LogOff", "Account")%> ]
<% Else %>
<!-- User is NOT Logged In -->
Welcome <b>Guest</b> please login!
[ <%: Html.ActionLink("Log On", "LogOn", "Account")%> ]
<% End If %>
당신은 선택적하지 않도록 선택할 수 있습니다 페이지의 내용을 표시하면 컨트롤러에서 처리 할 경우
.... 페이지 자체에 포함 된 콘텐츠를 직접 표시하지만 ChildAction 에서 검색 한 콘텐츠를 표시하도록 선택할 수 있습니다 (콘텐츠를 직접 배치하지 않고 이전의 MVC 스타일이 아닌 웹 디자인을 사용하여 UserControl에 표시하는 것과 유사합니다 웹 페이지에서)
간단한 방법으로 컨트롤러 메소드에서 RedirectToAction을 사용하는 것이 좋습니다.
Function Index() As ActionResult
If User.Identity.IsAuthenticated Then
Return RedirectToAction("Index", "AuthenticatedController")
Else
Return View()
End If
End Function
그러나 어떻게 관련이 있습니까? 이 라우팅은 컨트롤러 작업의 책임이 아니어야합니까? –
mvc 인증을 사용하면 사용자 개체가보기의 모든 위치에 액세스 할 수 있고 @ User.Identity를 작성하는 경우 i.A 조건에 ifAuthenticated가 표시되므로보기에 표시 할 내용을 결정할 수 있습니다. 모든보기에서 사용할 수 있습니다. –
나는 그것을 올바르게 얻었다. 도움을 주셔서 감사합니다 .... –