ASP .Net中的手动访问控制

有没有办法可以在没有基于内置角色的方式下限制对页面的访问?

基本上,如果用户尝试访问admin.aspx,则会重定向到login.aspx&redirect_url=admin.aspx

\然后,他们将使用他们的凭据回发,我会给他们一个会话cookie等等。

有这样的例子吗?

谢谢

编辑:

我无法使用ASP.NET的方式,因为我的数据库有员工用户名和密码。 ASP创建自己的角色等

首先,您应该在登录时设置FormsAuthentication cookie。 因此,在您的代码中,成功登录后,您可以使用以下命令设置cookie:

 FormsAuthentication.SetAuthCookie(theUsername, true); 

或者更好的是,您可以使用它来处理cookie和重定向:

 FormsAuthentication.RedirectFromLoginPage(theUsername, true); 

(如果你想要cookie继续存在,则为true)

您可以通过在该文件夹中放置web.config文件来保护admin文件夹:

          

现在当有人点击该管理员文件夹并且他们没有登录时,它会自动将它们发送到login.aspx?ReturnUrl=admin.aspx

另一件需要考虑的事情是实现自己的RoleProvider 。 你可能会认为这不是那么令人生畏。 如果你需要让人们加入角色(比如Admin),那么这是一个好主意。

您可以使用HttpContext.Session来保留会话变量。

当你把东西放到会话上时:

 HttpContext.Current.Session["IsAuthenticated"] = "true" 

Asp.Net将为您创建cookie,因此您无需关心它。 cookie将在会话结束时到期。 您可以使用自定义登录方法并存储在用户通过身份validation的会话变量中。 然后在限制页面上你只需检查会话变量,如:

 string isAuthenticated = HttpContext.Current.Session["IsAuthenticated"] 

编辑:

如果您想使用Asp.Net授权并根据用户名限制访问权限,那么:

     

看看Asp.Net站点导航以及您可以为用户使用相同的访问规则。

编辑:

如果您想对您的凭证数据库进行身份validation,那么MikeSmithDev建议的方式就是您的选择。 创建自定义MembershipProvider或使用FormsAuthentication方法 。