我有一个使用AD B2C进行身份验证的旧版MVC应用。我想要的行为是能够将用户重定向到我的登录页面,而不是B2C登录页面。进入登录页面后,我将进行一些预验证,然后向用户发送挑战。我已经测试了以下内容,并且此挑战的回调有效并且返回了用户的身份/声明(例如http://bitoftech.net/2016/08/31/integrate-azure-ad-b2c-asp-net-mvc-web-app/comment-page-1/#comment-129447)。
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpPolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ProfilePolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignInPolicyId));
为了实现重定向到我的登录页面,我引用了以下SO,该方法可以正常工作,除非我在回调中未获得Claims / Identity信息。对SO的引用:CookieAuthenticationOptions.LoginPath value not used when also using app.UseOpenIdConnectAuthentication
这是我的代码更改:
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpPolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ProfilePolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignInPolicyId));
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "ApplicationCookie",
LoginPath = new PathString("/Account/Login")
});
如何在回叫中获得索偿/身份? Request.IsAuthenticated也是假的。我的回叫:
[AllowAnonymous]
[HttpGet]
public ActionResult Callback() {
var identity = (ClaimsIdentity)User.Identity;
IEnumerable<Claim> claims = identity.Claims;
//CLAIMS ONLY HAS NAME AND IS EMPTY - THERE SHOULD BE 18 CLAIMS
return RedirectToAction("Index", "AppIndex");
}
答案 0 :(得分:0)
根据我对您要实现的目标的了解,目前尚无法实现。
我可以在Azure AD B2C服务的注册和登录页面上使用自己的URL吗?例如,我可以从 要登录到login.contoso.com,是login.microsoftonline.com?
目前不行。此功能在我们的路线图上。验证您的网域 在Azure门户的“域”选项卡中,无法实现此目标。
但是,您可以upvote the feature request并订阅Azure用户语音,以便在此功能可用时得到通知。