我有一个需要 ACSv2 身份验证的 Azure webrole,我想从 winforms 应用程序访问它。我的许多客户都使用 Windows XP,所以我不能使用 WIF(在 Windows XP 上不可用)。在这种情况下,为我的 Web 请求获取身份验证令牌的最佳方法是什么?
问问题
452 次
1 回答
1
对于桌面应用程序,您可以执行以下操作:
- 从您的 ACS 命名空间中获取身份提供者列表
- 在 WebBrowser 控件中显示这些
- 用户登录后,从 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 回答