2011-01-05 102 views
0

下面是情况,我有一个控制台应用程序需要每天运行一次,并向需要身份验证才能查看的页面发出一些请求。这些页面托管在一个非常基本的ASP.Net Web应用程序中。使用ASP.NET身份验证的控制台应用程序

所以,我知道为了使请求成功,我必须通过服务器进行身份验证。因此,我将控制台应用程序连接到用于Web应用程序的ASP.Net成员资格提供程序,并成功确定一组凭据是否有效。但是,在调用Membership.ValidateUser()之后,我只需要获取登录屏幕。做了一些阅读后,似乎这是因为我错过了重要的cookie信息,这些信息持续存在于我的登录信息或您拥有的信息中。

我正在使用基本的WebClient进行请求,然后读取/放弃结果。

所以问题的症结在于:是否有一种简单的方法来验证登录信息并保留它,以便我可以成功地发出请求,或者与其他两个问题完全相同发现需要WebClient向login.aspx页面发出“手动”登录请求,并尝试从那里保存cookie?

我引用的问题是:

Authenticating ASP.NET MVC user from a WPF application

Login to website and use cookie to get source for another page

+0

你见过这个演练吗? http://msdn.microsoft.com/en-us/library/bb515342.aspx – David 2011-01-05 20:30:44

回答

0

随着FormsAuthentication的网络服务器具有生成窗体身份验证票给你。最好的(唯一的)方法是登录到网站,所以我只是像其他问题一样登录。

0

如果意图是将数据发送到服务器和/或从服务器获取数据,那么最合理的架构可能是使用ASMX或WCF创建Web服务。然后将服务配置为使用安全令牌,例如用户名令牌或SAML令牌。当服务器代码更改其数据模型时,这将使客户端不太可能中断。否则,如果您只想使用基本的WebClient,则必须找到一种方法将凭据传递到登录页面并保留从登录请求返回的登录cookie。然后,确保所有后续请求中都包含登录cookie,类似于您引用的“登录到网站并使用cookie获取其他页面的源代码”的堆栈溢出问题。

相关问题