2012-04-04 80 views
0

我目前通过使用角色和规则在我的应用程序中有一些安全工作,但我想知道是否可以隐藏网络链接,具体取决于用户是否属于某个角色。隐藏未分配角色的用户的网页链接

我目前拥有它,因此用户属于“管理员”角色或“用户”角色。我的应用程序中的文件夹中已经设置了规则,所以如果用户属于任何一个组,他们可以点击一个网页链接并将它们带到页面。但是,如果新用户注册,他们不属于任何角色,并且当他们点击网页链接时,它会将其重定向到主页(请参阅下面的代码)。这很好,但是,我想知道是否可以隐藏该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 

回答

0

是啊,你可以使用User.IsInRole(role as String)

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

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

<% End If %> 

你的想法。您可以根据任何角色定制它,以适应您显示/隐藏链接的任何情况。

要了解有关角色管理的更多信息,请阅读here

+0

我假设我不得不声明用户?暗淡的用户作为membershipuser?或者是否有特定的角色声明? – Blob 2012-04-04 14:06:12

+0

'用户'是内置的。它是当前登录用户的'System.Security.Principal.IPrincipal'。 – 2012-04-04 14:08:09

+0

我建议你阅读我添加到我的答案中的链接,以便阅读角色管理及其工作原理。 – 2012-04-04 15:01:59

相关问题