小编use*_*117的帖子

如何通过C#对Office 365门户进行身份验证

我有一个与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)

c# federated-identity office365

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

federated-identity ×1

office365 ×1