0

我目前通过使用角色和规则在我的应用程序中进行了一些安全工作,但我想知道是否可以根据用户是否属于某个角色来隐藏 Web 链接。

我目前拥有它,因此用户属于“管理员”角色或“用户”角色。已在我的应用程序中的文件夹上设置了规则,因此如果用户属于任一组,他们可以单击 Web 链接并将其带到页面。但是,如果新用户注册他们不属于任何角色,并且当他们单击 Web 链接时,它会将他们重定向到主页(参见下面的代码)。这很好,但是,我想知道如果用户不属于特定角色阻止他们点击它,是否可以隐藏该 Web 链接。此外,如果用户不属于任何角色,是否可以将他们重定向到页面以告诉他们需要分配角色?

<authentication mode="Forms">
  <forms loginUrl="~/Homepage1.aspx" timeout="2880" />
</authentication>

我没有在当前应用程序中使用它,但在过去,它检查用户是否已通过身份验证,我想知道我是否可以使用类似的 IF 语句:如果 user.identity 不属于“用户”或“管理员”角色,然后将它们重定向到页面并显示错误?

    If User.Identity.IsAuthenticated = True Then

        Dim myUser As MembershipUser
        Dim objUser As Object

        myUser = Membership.GetUser(User.Identity.Name)
        objUser = myUser.ProviderUserKey

        Session("ID") = objUser

    Else

        MsgBox("You are not entitled to view this page", MsgBoxStyle.Critical, "Warning")
        Response.Redirect("~/NoAccess.aspx")

    End If
4

2 回答 2

0

是的,您可以使用User.IsInRole(role as String)

<% If User.IsInRole("admin") Then %>

<a href="admin-tools.aspx">Admin Tools</a>

<% End If %>

你明白了。您可以根据任何角色将其定制为您必须显示/隐藏链接的任何场景。

要了解有关角色管理的更多信息,请在此处阅读。

于 2012-04-04T12:15:10.060 回答
0

在您的情况下,我认为 LoginView 控件会更好。请参阅此处的文档:http: //msdn.microsoft.com/en-ca/library/system.web.ui.webcontrols.loginview (v=vs.100).aspx

祝你有美好的一天!

于 2012-04-04T12:19:02.457 回答