2012-04-04 77 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

相關問題