我有一个与Microsoft的Exchange租户(company.onmicrosoft.com),一个管理员帐户(admin@company.onmicrosoft.com),以及管理我的(设置)的管理页面.
最近,有一个项目我通过C#从管理页面自动解析一些Web数据.我阅读了很多与SharePoint相关的文章,并阅读了有关STS,SRF文件和主动/被动联合服务的文章.
那么,让我们来看看:
我从https://login.microsoftonline.com/login.srf开始,但是Fiddler意识到我可以直接跳到https://login.microsoftonline.com/ppsecure/post.srf并获得相同的结果.
所以,我去登录,输入我的凭据,然后转发给我管理页面.很简单吧?
所以,我决定复制网络流量,并依赖以下帖子和示例:
所有这些网站在屏幕抓取认证,ADFS和一堆其他有用信息上都有很棒的C#示例.问题是所有这些都是针对SharePoint的.
所以,我混合并匹配代码并提出以下内容:
static void Main3()
{
CookieContainer cookies = new CookieContainer();
//using Bungie example from http://stackoverflow.com/questions/2508656/logging-into-a-site-that-uses-live-com-authentication
//Uri url = new Uri("https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1268167141&rver=5.5.4177.0&wp=LBI&wreply=http:%2F%2Fwww.bungie.net%2FDefault.aspx&id=42917");
Uri url = new Uri("https://portal.microsoftonline.com/");
HttpWebRequest http = (HttpWebRequest)HttpWebRequest.Create(url);
http.Timeout = 30000;
http.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0";
http.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
http.AllowAutoRedirect = false;
http.Headers.Add("Accept-Language", "en-us,en;q=0.5");
http.Headers.Add("Accept-Encoding", "gzip, deflate"); //this option creates the two cookies but …Run Code Online (Sandbox Code Playgroud)