我目前在我的应用程序中使用角色和规则有一些安全性,但我想知道是否可以隐藏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
答案 0 :(得分:0)
是的,您可以使用User.IsInRole(role as String)
:
<% If User.IsInRole("admin") Then %>
<a href="admin-tools.aspx">Admin Tools</a>
<% End If %>
你明白了。您可以根据任何角色定制/隐藏链接的任何场景。
要了解有关角色管理的更多信息,请阅读here。
答案 1 :(得分:0)
在你的情况下,我认为LoginView控件会更好。请参阅此处的文档:http://msdn.microsoft.com/en-ca/library/system.web.ui.webcontrols.loginview(v=vs.100).aspx
祝你有个美好的一天!