我已经在我的ASP.NET网络应用程序中设置了自己的身份验证系统,并且我正在使用ContentPlaceHolders来确定向用户显示哪些内容,具体取决于他们是否已登录以及他们的查看权限是什么。现在,我有3个ContentPlaceHolders在我的母版页中占据相同的位置,最初都设置为Visible =“false”;一个用于已注销的用户,一个用于已登录但尚未由管理员验证的用户,另一个用于已登录和已验证的用户。我的母版页代码隐藏中的OnInit覆盖调用数据库来确定应该使哪个占位符可见。
我的假设是,因为ContentPlaceHolder和Content(在内容页面中)在获取页面时被合并,并且任何不可见的占位符都不会与内容页面中的关联内容控件合并。
我担心这个系统的安全性。我可以安全地假设,如果未经身份验证的用户在页面初始化时隐藏了相关的占位符,那么内容页面中的块将完全无法访问吗?
我基本上使用它来模仿ASP.NET内置身份验证系统的功能,通过使用AnonymousTemplate和LoggedInTemplate来隐藏和显示内容(在任何人建议之前,我不想使用ASP.NET的内置在认证中。)
有没有更好的方法来处理这个问题,还是我的系统工作得很好?