表单身份验证问题与asp.net中的WebBrowser类有关

时间:2011-04-25 08:42:44

标签: asp.net

我正在开发一个网站,在这个网站中,我正在构建一个功能来捕获页面的屏幕截图。在我的网站中,我正在使用表单身份验证。现在首先。

因此,当用户登录网站时,他/她必须输入凭据,然后转到他们的个人资料页面。

所以现在我只是使用WebBrowser Control创建用户个人资料页面的缩略图,但问题是,我正在使用表单身份验证,并且由于表单身份验证,它总是捕获登录表单页面。

所以请尽快帮助我。

2 个答案:

答案 0 :(得分:0)

在这种情况下,您需要以编程方式执行表单身份验证。这是需要的代码段。

FormsAuthentication.SetAuthCookie(UserName, false);

这里有更多信息 http://weblogs.asp.net/joseguay/archive/2009/03/23/the-asp-net-capsule-2-login-programmatically-with-forms-authentication.aspx

但是,请注意,您用于创建屏幕截图的代码可能不太合适。所以要照顾好这个。在这种情况下,这些帖子可能会对您有所帮助Send credentials to WebBrowser

答案 1 :(得分:0)

你必须通过WebBrowser控件来模拟表单身份验证 - 实质上,使用文档对象模型(Document property)来定位用户名/密码输入框,设置它们的值并触发提交(要么注入java脚本来执行表单提交或使用DOM来模拟登录按钮单击)。

IMO,更好的方法是使用WebRequest(HttpWebRequest)模拟POST登录页面进行身份验证,然后向用户个人资料页面发出请求。获取页面html(来自响应)并使用DocumentText属性将其加载到Web浏览器控件中。

如果您可以控制服务器站点,则可以修改用户配置文件页面以允许对某些请求进行未经过身份验证的访问(例如,从本地计算机或指定的IP等)。