2009-10-15 31 views
0

我正在一个需要限制对注册用户访问页面和文档(.pdf,.doc等)的网站上工作。我们正在使用ASP.NET Membership类来执行此操作。要求用户使用ASP.NET登录以查看文档

但是,我无法正常工作,如果有人在登录到网站之前点击文档链接,我该如何操作。目前,它们将被带到登录页面,并且在成功登录后,该文档将在新窗口中被提供,但是当它们关闭文档时,它们仍将坐在登录屏幕上。可以做些什么来将用户发送到默认页面并加载文档?

回答

1

首先制作您自己的登录页面;这很简单,因为ASP.NET Membership提供了执行所有重要操作的方法。然后,在调用RedirectFromLoginPage方法之前,查看ReturnUrl查询参数值,如果它是文档,请将用户发送到默认页面,而不是将文档的URL作为查询字符串参数或会话状态。最后,在默认页面中,检测是否传递了文档URL,如果是,则在页面加载时对文档执行客户端重定向(使用JavaScript或META刷新)。

+0

我最终实现了这个解决方案。 – 2009-10-19 18:32:01

+0

很高兴听到! – 2009-10-19 22:55:33

1

如果ReturnURL包含指向实际文档的链接,您可以设置“登录按钮”的OnClientclick属性来调用JavaScript函数以在新窗口中打开该文件,然后有响应.Redirect()从登录屏幕中取出该人员?

+0

这对我而言并不适用,因为在登录完成之前JavaScript已经解雇了。 – 2009-10-19 18:31:20

0

新增formsAuthentication。 FormsAuthentication.RedirectFromLoginPage(txtUserid.Text.Trim(),false)

+0

纠正我,如果我错了,但这会调出文档(.pdf,.doc等),但是当文档窗口关闭时,用户仍将在登录页面上。 – 2009-10-15 20:25:37

0

正如HenryGao所说的,但记住要将标签放入您的web配置中,并将deny users="?"仅允许通过身份验证的用户。

<configuration> 
    <system.web> 
     <authorization> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
</configuration>