我有一个Azure webrole,需要我想从winforms应用程序访问的ACSv2身份验证。我的许多客户使用Windows XP,因此我无法使用WIF(Windows XP上没有)。在这种情况下,获取Web请求的身份验证令牌的最佳方法是什么?
答案 0 :(得分:1)
对于桌面应用程序,您可以执行以下操作:
与您希望在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
};