我正在尝试使用AngleSharp向login.microsoftonline.com进行身份验证,以便可以将站点用作SSO提供程序来从站点收集数据。
到目前为止我得到的代码:-
var config = Configuration.Default
.WithJs()
.WithCss()
.WithDefaultLoader()
.WithDefaultCookies();
IBrowsingContext browsingContext = BrowsingContext.New(config);
browsingContext.OpenAsync(@"http://login.microsoftonline.com/").Wait();
(browsingContext.Active.QuerySelector("input[name = 'loginfmt']") as IHtmlInputElement).Value = @"username";
(browsingContext.Active.QuerySelector("form") as IHtmlFormElement).SubmitAsync().Wait();
(browsingContext.Active.QuerySelector("input[name = 'passwd']") as IHtmlInputElement).Value = @"password";
(browsingContext.Active.QuerySelector("form") as IHtmlFormElement).SubmitAsync().Wait();
// Further code then using the cookie(s) once authenticated...
本质上,“ input [name ='loginfmt']”使用此代码无法解析为任何内容,尽管在浏览器中效果很好...检查“活动”文档(及其子文档)后,似乎只是充满了JavaScript,却看不到任何形式。