假设我有两个权限:管理员和主机,我有一个默认页面。
登录后:管理员用户可以查看所有内容,但主机用户无法在页面中看到几个按钮
所以我应该复制默认页面吗?或者有没有办法在重定向到默认页面时禁用按钮?
If Login1.Password = Session("pwd") Then
Response.Redirect("profile_test_1.aspx")
End If
请注意我正在使用网络应用程序
谢谢:)
答案 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