从Winforms访问ACS Azure

时间:2013-02-13 14:15:41

标签: winforms azure acs

我有一个Azure webrole,需要我想从winforms应用程序访问的ACSv2身份验证。我的许多客户使用Windows XP,因此我无法使用WIF(Windows XP上没有)。在这种情况下,获取Web请求的身份验证令牌的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

对于桌面应用程序,您可以执行以下操作:

  1. 从ACS名称空间获取身份提供商列表
  2. 在WebBrowser控件中显示这些
  3. 用户登录后,从WebBrowser控件获取令牌并解析它。
  4. 与您希望在Windows Phone应用程序中使用ACS时类似。我建议你看一下这篇博文:Azure ACS on Windows Phone 7。以下是用户通过WebBrowser控件(在WP7上)登录后解析令牌的示例代码:

    private void SignInWebBrowserControl_ScriptNotify(object sender, NotifyEventArgs e) 
    { 
        var acsResponse = ACSResponse.FromJSON(e.Value);
    
        RequestSecurityTokenResponse rstr = null; 
        Exception exception = null; 
        try 
        { 
            string binaryToken = HttpUtility.HtmlDecode(acsResponse.securityToken); 
            string tokenText = RequestSecurityTokenResponseDeserializer.ProcessBinaryToken(binaryToken); 
            DateTime expiration = DateTime.Now + TimeSpan.FromSeconds(acsResponse.expires – acsResponse.created);
    
            rstr = new RequestSecurityTokenResponse 
                        { 
                            Expiration = expiration, 
                            TokenString = tokenText, 
                            TokenType = acsResponse.tokenType 
                        };