处理未授权用户的权限

时间:2013-08-22 12:56:38

标签: asp.net vb.net

假设我有两个权限:管理员和主机,我有一个默认页面。

登录后

:管理员用户可以查看所有内容,但主机用户无法在页面中看到几个按钮

所以我应该复制默认页面吗?或者有没有办法在重定向到默认页面时禁用按钮?

  If Login1.Password = Session("pwd") Then
        Response.Redirect("profile_test_1.aspx")
    End If

请注意我正在使用网络应用程序

谢谢:)

2 个答案:

答案 0 :(得分:0)

我使用C#,但我很确定这也适合VB。 您可以使用LoginView webcontrol,当然,也可以将所有内容保存在同一页面中。

示例

<asp:LoginView ID="LoginView1" Runat="server">
  <LoggedInTemplate>
   <asp:LoginName ID="LoginName1" Runat="server" 
                  FormatString ="Welcome, {0}"/>
   <br />
    <asp:HyperLink ID="HyperLink1" Runat="server" 
      NavigateUrl="~/MemberPages/ChangePassword.aspx">
      Change Password
    </asp:HyperLink>
  </LoggedInTemplate>
  <AnonymousTemplate>
    <asp:Login id="Login1" runat="server" 
        CreateUserText="Create a new user..."
        CreateUserUrl="~/Register.aspx" 
        PasswordRecoveryUrl="~/Recovery.aspx" 
        UserNameLabelText="E-mail address:" />
  </AnonymousTemplate>
</asp:LoginView>

在此示例中,我为登录和匿名用户分隔块,但您可以基于Roles执行相同操作。

来源:http://msdn.microsoft.com/en-us/library/ms178329%28v=vs.90%29.aspx

答案 1 :(得分:0)

您可以创建一个在验证用户后运行的子程序。您可以传递布尔管理员,子将隐藏/显示所需的按钮。你可以在postback或page_load上调用它,具体取决于你如何传递用户角色。

伪代码:

Sub SetPermissions(Byval blAdmin as boolean)

    If blAdmin Then
        'Insert code to showbuttons; ie. btnAdminOnly.Visible = True
    Else
        'Insert code to hide buttons; ie. btnAdminOnly.Visible = False
    End If

End Sub