【问题标题】:Forms Authentication issue with WebBrowser Class in asp.netasp.net 中 WebBrowser 类的表单身份验证问题
【发布时间】:2013-01-10 13:22:44
【问题描述】:

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

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

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

所以请尽快帮助我。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

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

    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

    【讨论】:

    • 但我的问题是如何在 WebBrowser 中使用表单身份验证
    【解决方案2】:

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

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

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

    【讨论】:

    • 看到我的 url 会是这样,我正在调用 MyBrowser.Navigate("localhost:3143/Artist/ArtistProfile.aspx?UserId=16"); 所以当 webbrowser 在内部调用该页面时,由于表单身份验证,它会进入登录页面。所以请告诉我该怎么做。
    • @Anil,一旦进入登录页面,您必须使用 DOM 来提供凭据等。或者,使用 WebRequest 类对登录页面进行 POST 请求,然后对用户个人资料页面进行 GET 请求 - 获取来自响应的 html 并将其加载到 WebBrowser 控件中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    相关资源
    最近更新 更多