目前,我使用以下代码提示重定向到Azure登录门户,以便在Azure登录屏幕上输入有效的用户名和密码:
public void SignIn()
{
// Redirect to the Azure sign in page.
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = RedirectUrl }, OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
我如何更改上述代码,以便不是首先重定向到Azure并在那里输入用户名和密码,而是直接从我的网站输入用户名和密码,然后将凭据在后台传递给Azure,获取一个身份验证令牌返回并最终重定向到指定的返回URL?
答案 0 :(得分:0)
不支持。用户应输入azure广告凭据的唯一位置是azure广告凭据收集页面。其他所有内容都是不允许的,包括在iframe中托管该页面。这是出于安全原因。 HTH 诉
答案 1 :(得分:0)
决定不使用Azure AD中的ClaimsPrincipal,而是执行以下操作,并在我的网站上手动管理当前用户的会话:
private static string GetUserID(string userName, string password)
{
// Acquire the token for this user attempting to access the API.
var authenticationContext = new AuthenticationContext(Authority, TokenCache.DefaultShared);
var result = authenticationContext.AcquireToken(ApiResource, ClientId, new UserCredential(userName, password));
return result.UserInfo.UniqueId;
}