未经授权的用户的处理权限



假设我有两个权限:Admin和Host,并且我有一个默认页面。

登录后:管理员用户可以看到所有内容,但主机用户在页面中看不到几个按钮

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

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

注意,我使用的是网络应用程序

谢谢:)

我使用C#,但我确信这也适合VB。您可以使用LoginView网络控件,当然,还可以将所有内容保持在同一页面中。

示例

<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

您可以创建一个将在用户验证后运行的子。您可以传递一个布尔Admin,子将隐藏/显示所需的按钮。根据传递用户角色的方式,可以在回发或页面加载时调用此函数。

伪码:

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

最新更新