我最近才看到ACS,AAL,WAAD,我想避免将用户重定向到其IDP的登录页面。我想让我的用户保留在我的网站中,并向他们展示一个下拉框,以选择他们想要进行身份验证的用户以及要求输入用户名和密码的区域,然后通过代码获取令牌。这可能吗?ACS--绕过用户重定向到IdP?
我一直在审查一些示例应用程序,并产生一个快速的模拟,但似乎无法让事情工作,例如,
_authContext = new AuthenticationContext("https://littledeadbunny.accesscontrol.windows.net");
string enteredEmailDomain = UserNameTextbox.Text.Substring(UserNameTextbox.Text.IndexOf('@') + 1);
IList<IdentityProviderDescriptor> idpdList = _authContext.GetProviders("http://littledeadbunny.com/NonInteractive");
foreach (IdentityProviderDescriptor idpd in idpdList)
{
if (String.Compare(ServiceRealmDropDownList.SelectedValue, idpd.Name, StringComparison.OrdinalIgnoreCase) == 0)
{
Credential credential;
credential = new UsernamePasswordCredential(enteredEmailDomain, UserNameTextbox.Text, PasswordTextbox.Text);
_assertionCredential = _authContext.AcquireToken("http://littledeadbunny.com/NonInteractive", idpd, credential);
return;
}
}
使用上面的代码,当我尝试使用Windows Azure中的Active Directory用户(管理员),我得到的错误“数据在根级别是无效的。行1,位置1。”我试图获得认同。
当我使用Google时,出现错误“0x8010000C:没有身份提供者匹配请求的协议”。
如果有工作样品?如果我正在做一些明显错误的事情,我会赞赏纠正。
感谢奥伦如何,这是有道理的。这是否也适用于Office365和Windows Azure Active Directory?我知道这些可以与本地目录同步,并且在访问业务线应用程序时,用户熟悉点击内部登录屏幕。在这种情况下浏览器控件是否适用,以及要求用户通过浏览器控件对WAAD或Office 365进行身份验证? 对不起,如果这听起来很愚蠢,这对我来说都是非常新的。 – user2135771 2013-03-05 20:58:08
让用户使用浏览器控件登录到O365或Azure AD是完全合适的。 – 2013-03-06 01:01:40
感谢您的信息。浏览器控制是唯一的选择,是否有其他方式来管理认证过程?有没有样品或指南能够做到这一点?这将整理我的学习曲线。谢谢你的时间。 – user2135771 2013-03-06 11:20:46