使用Windows Phone 8应用程序对UAG进行身份验证

时间:2013-05-24 15:04:26

标签: c# windows-phone-8 httpwebrequest

我有一个非常简单的场景 - 我需要我的应用程序自动对UAG网关进行身份验证。目前,我只在门户网站后面有一个文件共享应用程序,但我只是尝试通过在代码中提供用户凭据来对UAG进行自动身份验证。我正在尝试访问portal.mylab.com/dummylink - 我知道这会失败,但我希望应用程序向我显示它通过UAG身份验证并在尝试查找此dummylink应用程序时失败

我现在拥有的很简单,WP8应用程序中只有一个按钮,其他所有内容都是硬编码的。我在按钮下面有一个简单的文本块,显示了网站的响应,但我每次都会收到身份验证页面。这就是我所拥有的

private void Button_Click(object sender, RoutedEventArgs e)
        {
            System.Uri targetUri = new System.Uri("portal.mylab.com/dummylink");
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
            request.CookieContainer = new CookieContainer();

           request.Headers["User-Agent"] = "Microsoft Office Mobile";
           request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes("testuser" + ":" + "Password1")) + System.Environment.NewLine;
request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), request);

}

private void ReadWebRequestCallback(IAsyncResult callbackResult)
        {
            HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;

            HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult);

using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
            {
                string results = httpwebStreamReader.ReadToEnd();
                Dispatcher.BeginInvoke(() => TextBlockResults.Text = results);
            }
}

当我查看文本块时,我可以看到为登录页面(针对移动门户)返回的HTML代码,有2个按钮可以使用PIN或使用凭据登录。我期望(或者更愿意)看到的是UAG授权成功并获得某种“未找到dummylink页面”类型的错误。我正在向UAG提供用户凭据,但它似乎没有把它们拿起来。

我可能在这里遗漏了一些非常明显的东西,这也是我第一次与UAG有关,所以请原谅愚蠢的错误:)

提前致谢

1 个答案:

答案 0 :(得分:0)

原来这种做法完全错了!如果有人正在考虑如何做到这一点,那么请看看这个精彩的博客

http://usingnat.net/sharepoint/2011/2/23/how-to-programmatically-authenticate-to-uag-protected-sharep.html

相关问题