【发布时间】:2013-01-10 13:22:44
【问题描述】:
我正在开发一个站点,并且在这个站点中我正在构建一个功能来捕获页面的屏幕截图。在我的网站中,我首先使用表单身份验证。现在。
因此,当用户登录网站时,他/她必须输入凭据,然后转到他们的个人资料页面。
所以现在我只是使用 WebBrowser Control 创建用户个人资料页面的缩略图,但问题是,我正在使用表单身份验证,并且由于表单身份验证,它总是捕获登录表单页面。
所以请尽快帮助我。
【问题讨论】:
标签: asp.net
我正在开发一个站点,并且在这个站点中我正在构建一个功能来捕获页面的屏幕截图。在我的网站中,我首先使用表单身份验证。现在。
因此,当用户登录网站时,他/她必须输入凭据,然后转到他们的个人资料页面。
所以现在我只是使用 WebBrowser Control 创建用户个人资料页面的缩略图,但问题是,我正在使用表单身份验证,并且由于表单身份验证,它总是捕获登录表单页面。
所以请尽快帮助我。
【问题讨论】:
标签: asp.net
在这种情况下,您将需要以编程方式执行登录以进行表单身份验证。这是需要的代码。
FormsAuthentication.SetAuthCookie(UserName, false);
但是,请注意,您用于创建屏幕截图的代码可能不适合它。所以请注意这一点。在这种情况下,这些帖子可能会对您有所帮助Send credentials to WebBrowser
【讨论】:
您必须通过 WebBrowser 控件模拟表单身份验证 - 本质上,使用文档对象模型 (Document property) 来定位用户名/密码输入框,设置它们的值并触发提交(或者注入 java-script 进行表单提交或使用 DOM 模拟登录按钮点击)。
IMO,更好的方法是使用 WebRequest (HttpWebRequest) 模拟 POST 到登录页面进行身份验证,然后向用户个人资料页面发出请求。获取页面 html(来自响应)并使用 DocumentText 属性将其加载到 Web 浏览器控件中。
如果您可以控制服务器站点,您可以修改用户配置文件页面以允许对某些请求(例如,来自本地计算机或指定 IP 等)进行未经身份验证的访问。
【讨论】: