2010-07-12 80 views
0

我正在开发一个基于asp.net的大型应用程序。链接需要用户认证的某些页面&。在某个页面上,我有链接和表单提交,我首先需要对用户进行身份验证。这里是一个例子:ASP.Net网络流程

在PageX我有一个链接L1。当用户点击时,我检查用户是否被认证。如果没有,我重定向到登录页面。一旦用户通过身份验证,我将他重定向回PageX。但问题是,我不希望用户再次点击L1!相反,我希望一旦用户通过身份验证并显示其结果后执行L1操作。

我正在尝试对此问题有一个很好的解决方案。有关如何完成此任何想法?

回答

1

有这样做的几种方法:

1,窗体身份验证的内置的方式,纠正我,如果我记得错了,你应该能够添加自己的登录逻辑与集成登录控制表单身份验证提供商

2,如果用户未登录,则将L1 url链接分配给查询字符串或会话,并向登录控件添加逻辑,登录成功时重定向用户。

+0

我同意,并得到它的工作!但问题是L1是一个链接按钮。当用户点击时,我调用像ProcessL1(object sender,EventArgs e){...}这样的方法,然后重定向到相应的页面。 我面临的问题是我需要登录后执行此ProcessL1() – 2010-07-12 12:53:48

+0

如果是这样的话,我会说,而不是在L1 LinkBut​​ton上进行登录验证,将目标L1按钮重定向到登录验证检查。 – 2010-07-12 13:28:23

1

使用Forms Authentication

它被烘焙到ASP.NET中,并且完全符合您的要求。

用户将点击一个链接。如果他们没有通过身份验证,他们将被重定向到登录页面(页面的其中一个参数将成为他们尝试访问的目标网址)。登录成功后,用户将被重定向到他们请求的页面,而不必再次点击链接。

你还需要确保你有你的web.config设置正确允许/拒绝您的应用程序非法访问如下所述:

Setting authorization rules for a particular page or folder in Web.config

+0

我正在使用表单身份验证!但是我没有使用.net提供的任何登录控件。我使用自己的登录表单... – 2010-07-12 12:17:34

+0

@Abdel您是否使用自己的HttpModules来处理身份验证和授权事件? – 2010-07-12 12:28:39

+0

@Abdel Olakara - 您无需使用.NET提供的登录控件。另一方面,您需要确保您的Web.config文件中设置的应用程序具有适当的授权配置,以便.NET可以为您处理这些问题。 – 2010-07-12 12:28:55

2

ASP.NET的Forms Authentication解决了这一场景。您可以拒绝所有未经验证的用户访问所有页面,或者(更常见)拒绝未经验证的用户访问正确的页面子集。