我正在开发一个大型的基于asp.net的应用程序。某些页面和链接需要用户身份验证。在某些页面上,我有链接和表单提交,我首先需要对用户进行身份验证。下面是一个示例:
在PageX中,我有一个链接L1。当用户点击时,我检查用户是否通过了身份验证。如果没有,我会重定向到登录页面。一旦用户通过了身份验证,我就将他重定向回PageX。但问题是,我不希望用户再次单击L1!相反,我希望在用户通过身份验证并显示其结果后执行L1操作。
我正在努力为这个问题找到一个好的解决方案。你有什么办法做到这一点吗?
发布于 2010-07-12 12:49:03
有几种方法可以做到这点:
1,表单身份验证的内置方法,如果我记错了,请纠正我,您应该能够添加自己的登录逻辑,并将您的登录控件与表单身份验证提供程序集成
2 .如果用户未登录,则分配L1 url链接到查询字符串或会话,并在登录控件中添加逻辑,在登录成功时重定向用户。
发布于 2010-07-12 12:16:50
ASP.Net的Forms Authentication解决了这个问题。您可以拒绝所有未经身份验证的用户访问所有页面,或者(更常见的)拒绝未经身份验证的用户访问适当的页面子集。
发布于 2010-07-12 12:15:01
它被嵌入到ASP.NET中,并且完全按照您所说的那样进行操作。
用户将点击一个链接。如果他们没有通过身份验证,他们将被重定向到登录页面(该页面的其中一个参数将是他们试图访问的目标URL )。成功登录后,用户将被重定向到他们请求的页面,而不必再次单击该链接。
您还需要确保您的web.config设置为正确地允许/拒绝对您的应用程序进行未经授权的访问,如下所述:
Setting authorization rules for a particular page or folder in Web.config
https://stackoverflow.com/questions/3228382
复制