1

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

4

1 回答 1

1

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

  1. 从您的 ACS 命名空间中获取身份提供者列表
  2. 在 WebBrowser 控件中显示这些
  3. 用户登录后,从 WebBrowser 控件中获取令牌并解析。

类似于您想在 Windows Phone 应用程序中使用 ACS。我建议您看一下这篇博文:Windows Phone 7 上的 Azure ACS。以下是用户通过 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 
                    };
于 2013-02-13T14:24:14.997 回答