문제

필요한 것에 대해 loginview를 사용하는 데 문제가 있습니다. 로그인 뷰 (및 방법) 에서이 작업을 수행 할 수 있는지 또는 코드 베어드를 사용해야하는지 말해 줄 수 있습니까?

관리자와 사용자의 두 가지 역할이 있습니다. 역할에 따라 링크를 동적으로 표시하고 싶습니다. 설명하기가 더 쉽기 때문에 if 문서에서 원하는 것을 작성하겠습니다.

if (role = Administrator) //Display only if administrator.
   Show Hyperlink 1
   Show Hyperlink 2
else
   if (role = User) //Display only if user.
      Show Hyperlink 3
      Show Hyperlink 4
   endif
   //Display these if a user or if non-authenticated user...
   Show Hyperlink 5
   Show Hyperlink 6
   Show Hyperlink 7 
endif
도움이 되었습니까?

해결책

사용하는 이와 같은 것을 시도하십시오 RoleGroups 재산. 또한 사용자의 역할 그룹을 지정할 수도 있지만 LoggedIntemplate을 사용하면 역할 그룹에 그룹이없는 모든 사용자에게 영향을 미칩니다. 마지막으로, 사용자/익명으로 설명한 시나리오와 같은 공유 템플릿을 가질 수있는 방법은 없으므로 복제해야 할 수도 있습니다. 또 다른 가능성은 LoginView에 포함시키지 않고 관리자에게도 보여주지 않는다는 것입니다.

<asp:LoginView runat="server" ID="LoginView">
    <AnonymousTemplate>
        <asp:HyperLink runat="server" ID="Link5" />
        <asp:HyperLink runat="server" ID="Link6" />
        <asp:HyperLink runat="server" ID="Link7" />
    </AnonymousTemplate>
    <LoggedInTemplate>
        <asp:HyperLink runat="server" ID="Link3" />
        <asp:HyperLink runat="server" ID="Link4" />
        <asp:HyperLink runat="server" ID="Link5" />
        <asp:HyperLink runat="server" ID="Link6" />
        <asp:HyperLink runat="server" ID="Link7" />
    </LoggedInTemplate>
    <RoleGroups>
        <asp:RoleGroup Roles="Administrator">
            <ContentTemplate>
                <asp:HyperLink runat="server" ID="Link1" />
                <asp:HyperLink runat="server" ID="Link2" />
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>

다른 팁

ASP.NET LoginView 컨트롤로 원하는 것을 확실히 달성 할 수 있습니다.

당신은 "" "를보고 싶을 것입니다.역할 그룹"LoginView Control의 속성을 사용하면 인증 된 사용자가 속한 역할에 따라 다른 ContentTemplate를 만들 수 있습니다.

예를 들어:

<form id="form1" runat="server">
   <asp:LoginView id="LoginView1" runat="server">
      <RoleGroups>
         <asp:RoleGroup Roles="administrator">
            <ContentTemplate>
               <ul>
                  <li>Hyperlink 1</li>
                  <li>Hyperlink 2</li>
               </ul>
            </ContentTemplate>
         </asp:RoleGroup>
         <asp:RoleGroup Roles="user">
            <ContentTemplate>
               <ul>
                  <li>Hyperlink 3</li>
                  <li>Hyperlink 4</li>
               </ul>
            </ContentTemplate>
          </asp:RoleGroup>
      </RoleGroups>
      <AnonymousTemplate>
         <ul>
            <li>Hyperlink 5</li>
            <li>Hyperlink 6</li>
         </ul>
      </AnonymousTemplate>
   </asp:LoginView>
</form>

이 메커니즘을 사용하면 ASP 마크 업에서 각 역할에 대한 컨텐츠를 순전히 선언적으로 정의 할 수 있습니다. 또는 항상 서버 측 코드 로이 작업을 수행 한 다음 원하는 기준에 따라 컨트롤 (runat = "Server")을 표시/숨길 수 있습니다. 예를 들어 LoginView 컨트롤의 대안으로 멀티 뷰/뷰 통제 수단.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top