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