我正在使用Asp.Net/C#
来构建应用程序。我正在使用Forms Authentication
。我有一个要求,即我的许多authenticated (not anonymous) users
仅限于某些页面功能或用户界面。猜测Login Control
只能用于Authenticated vs Anonymous
个用户。所以我的问题是,当我知道某些页面组件要从特定的经过身份验证的用户隐藏时,我该怎么做呢。你认为我需要在page_load事件中使用它来隐藏具有此类要求的页面的组件。
// Is this Tito visiting the page?
string userName = User.Identity.Name;
if (string.Compare(userName, "Tito", true) == 0)
// This is Tito, SHOW the Delete column
FilesGrid.Columns[1].Visible = true;
else
// This is NOT Tito, HIDE the Delete column
FilesGrid.Columns[1].Visible = false;
有没有更好的方法来实现这一点。非常感谢任何帮助。谢谢
答案 0 :(得分:1)
您可以在此处使用Membeship User类和RolePrincipal来分隔用户。
if(HttpContext.Current.User.IsInRole("Level1"))
{
FilesGrid.Columns[1].Visible = true;
}
else
{
FilesGrid.Columns[1].Visible = false;
}
因此,您将用户设置为不同的成员名称,然后向他们显示依赖于成员身份角色的不同控件。
一些链接:
http://msdn.microsoft.com/en-us/library/ff648345.aspx
http://msdn.microsoft.com/en-us/library/system.web.security.roleprincipal.isinrole.aspx
答案 1 :(得分:1)
你还需要知道,当你只是隐藏一个控件时,它的base64编码值仍然存在于viewstate中。客户端能够阅读它。
客户端还可以读取哪个隐藏控件触发操作。并且没有什么可以阻止“智能”客户端触发此操作。
所以: