easy页面如何显示登录用户名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easy页面如何显示登录用户名相关的知识,希望对你有一定的参考价值。

参考技术A 下载Tweak UI 。
打开,点左侧的登录项,右侧选择“显示admin”即可~不用手动改注册表。

如何根据登录用户角色显示 aspx 页面的某些部分

【中文标题】如何根据登录用户角色显示 aspx 页面的某些部分【英文标题】:How to show or hide contents of an aspx page based on current user's roles 【发布时间】:2013-06-29 10:06:35 【问题描述】:

我有一个 asp.net 站点..每个页面都有一些内容,每个登录用户都有一些角色..我想根据登录用户角色隐藏和显示页面的内容..如何我这样做?谢谢。 P.S:我知道 asp.net 中的身份验证和授权表单......我的问题是关于页面的内容。

我想知道拥有一些 .ascx(用户控件)然后将它们添加到 .aspx 页面是否正确。然后根据可见性属性和用户角色隐藏和显示 aspx 页面的某些部分。最好的方式?谢谢。

【问题讨论】:

【参考方案1】:

不应该太难:根据面板中的角色(或任何其他可能适合您完成工作的元素)包装您想要显示/隐藏的网站部分。 在您的 Page_Load(或 Page_Init,不确定那个)后面的代码中执行类似

if (Roles.IsUserInRole("rolename")

    content.Visible = true;

else

    content.Visible = false;

其中 content 是您的 aspx 页面上面板的 ID。 上面的代码也可以写成

content.Visible = Roles.IsUserInRole("rolename");

另一种检查角色的方法是

User.IsInRole("rolename")

这实际上是我更喜欢使用的方法,因为它看起来稍微干净一些。 Roles.IsUserInRole 方法也可用于检查特定用户是否具有特定角色,但在这种情况下我们对此不感兴趣。

【讨论】:

【参考方案2】:

我终于找到了合适的答案..我不想设置可见性属性(是的,这不难猜!),因为它使我的代码变脏并且不方便...假设我有页面默认值。 aspx 并且有 3 个角色 Admin,A,B....在 Default.aspx 页面中我想根据用户角色显示内容,所以我使用 Loginview 和它的模板,如下所示:

<asp:LoginView runat="server" ID="loginviewControl1">
   <AnonymousTemplate>
        <asp:HyperLink runat="server" ID="lnkLogin" Text="Log In" NavigateUrl="~/Account/Login.aspx"></asp:HyperLink>
   <Anonymous:AnonymousPart ID = "anonym" runat="server" />
   </AnonymousTemplate>
   <LoggedInTemplate>
        <asp:Label runat="server" ID="WelcomeBackMessage"></asp:Label>
    </LoggedInTemplate>
   <RoleGroups>
       <asp:RoleGroup Roles="Admin">
           <ContentTemplate>
               <Admin:AdminPart ID ="adminContent" runat="server" />
           </ContentTemplate>
       </asp:RoleGroup>
       <asp:RoleGroup Roles="A">
           <ContentTemplate>
              <RoleA:RoleAPart ID = "RoleAContent" runat="server"/>
           </ContentTemplate>
       </asp:RoleGroup>
       <asp:RoleGroup Roles="B">
           <ContentTemplate>
             <RoleB:RoleBPart ID = "RoleBContent" runat="server" />
           </ContentTemplate>
       </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>

RoleB:RoleBPart、RoleA:RoleAPart、Admin:AdminPart

是用户控件!这是我的服务器端..

protected void Page_Load(object sender, EventArgs e)
    

    

我认为这比设置可见性更好,因为有时它很难处理!!当角色 A 的用户登录时,唯一显示的内容是 RoleA:RoleAPart 部分!

【讨论】:

是的,这也更好,因为数据可能是私有的和隐藏的,并且元素不会阻止该数据在 HTML 中。

以上是关于easy页面如何显示登录用户名的主要内容,如果未能解决你的问题,请参考以下文章

如何在登录后重定向到我想要的页面并在成功登录后显示用户名

Angular 8. 如何在登录页面单击登录按钮,并在下一页的导航栏组件上显示用户名?

如何在 Magnolia CMS 中向登录用户显示页面的某些内容部分

如何根据用户角色有条件地显示 JSP 页面的元素

颤振:如何显示用户特定的页面?

登录后如何在会员页面显示全名?