現在、ロールとルールを使用してアプリケーションである程度のセキュリティが機能していますが、ユーザーが特定のロールに属しているかどうかに応じて、Web リンクを非表示にできるかどうか疑問に思いました。
私は現在それを持っているので、ユーザーは「管理者」ロールまたは「ユーザー」ロールのいずれかに属しています。アプリケーションのフォルダにルールが設定されているため、ユーザーがいずれかのグループに属している場合、ユーザーは Web リンクをクリックしてそのページに移動できます。ただし、新しいユーザーが登録すると、ロールに属さず、Web リンクをクリックすると、ホームページにリダイレクトされます (以下のコードを参照)。これは素晴らしいことですが、ユーザーが特定の役割に属していないためにそのリンクをクリックできない場合、その Web リンクを非表示にすることは可能でしょうか。また、ユーザーがどのロールにも属していない場合、ロールを割り当てる必要があることを伝えるページにリダイレクトできますか?
<authentication mode="Forms">
<forms loginUrl="~/Homepage1.aspx" timeout="2880" />
</authentication>
私は現在のアプリケーションではこれを使用していませんが、過去に、これはユーザーが認証されているかどうかをチェックしています。同様の IF ステートメントを次のように使用できるかどうか疑問に思いました:役割、次にそれらをページにリダイレクトしてエラーを表示しますか?
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