我们已经成功地设置了一个Windows Azure AD租户,并根据本教程在我们的ASP.NET应用程序中实现了web单点登录http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspx
我们正在使用组织标识进行身份验证,但如果用户已经使用不同的Microsoft帐户(Windows Live ID)登录到另一个网站,我们会收到一条对用户非常不友好的错误消息。-"ACS20016:登录用户的域与此STS的任何允许域都不匹配。"
我们有什么方法可以提供更方便用户的错误消息吗?如果在登录过程中发生错误,是否有类似ACS中的错误URL的东西可以将用户重定向到自定义错误页面?
完全可能。
ACS为您提供编码JSON中的错误消息像这个
{"context":null,"httpReturnCode":401,"identityProvider":"Google","timeStamp":"2010-12-17 21:01:36Z","traceId":"16bba464-03b9-48c6-a248-9d16747b1515","errors":[{"errorCode":"ACS30000","errorMessage":"There was an error processing an OpenID sign-in response."},{"errorCode":"ACS50019","errorMessage":"Sign-in was canceled by the user."}]}
- 首先,您需要在管理门户中为您的ACS命名空间启用"错误URL功能"->编辑依赖方->错误URL
- 您需要一个助手类来解码JSON。此处的步骤
- 配置对它们的匿名访问错误页面
有了这一点,你就可以完全控制页面,你可以按照需要的方式显示错误消息,并为页面打上品牌,以匹配你的依赖方网站的外观和感觉。