Azure AD 登录中的 ASPXAUTH cookie 问题
ASPXAUTH cookie issue in Azure AD login
我为 Office 365 使用了 azure AD 登录选项,我在我的 Azure AD 中为我的生产和开发站点使用了 2 个单独的客户端应用程序,如下所示,
生产:https://samples@company.com(安全站点)
开发:http://samples@company.com:88(不安全)
单独登录网站时登录工作正常,但在执行以下步骤时出现错误,
1. 如果我登录到我的生产站点,我的开发站点无法运行。
2. 我们注意到的唯一区别是 is.ASPXAUTH cookie 是在登录生产站点时创建的。
在退出生产站点之前,我无法登录开发站点。
请建议解决此问题的解决方案。
public static void ConfigureAuth(IAppBuilder app)
{
app.UseKentorOwinCookieSaver();
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = redirectUri,
UseTokenLifetime = false,
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = context =>
{
string returnUrl = context.AuthenticationTicket.Properties.RedirectUri;
context.AuthenticationTicket.Properties.RedirectUri = "/members/register?returnUrl="+ returnUrl;
return Task.FromResult(0);
},
AuthenticationFailed = context =>
{
if (context.Exception.Message.StartsWith("OICE_20004") || context.Exception.Message.Contains("IDX10311"))
{
context.SkipToNextMiddleware();
context.Response.Redirect("/members/logon");
return Task.FromResult(0);
}
return Task.FromResult(0);
}
}
});
}
}
}
我面临的问题是,从 Office 365 登录后,它重定向到下面 url
http://samples@company.com:88/members/register?returnUrl=http://samples@company.com:88/
但它需要重定向到 http://samples@company.com:88 这个 link.
网站有提供注册功能吗?该网站似乎支持从 Azure AD 注册用户登录。如果我没理解错的话,我们可以通过下面的代码重命名网站发布的cookie-name,让两个网站的cookie分开工作:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
CookieName = "DevSite",
});
我为 Office 365 使用了 azure AD 登录选项,我在我的 Azure AD 中为我的生产和开发站点使用了 2 个单独的客户端应用程序,如下所示, 生产:https://samples@company.com(安全站点) 开发:http://samples@company.com:88(不安全)
单独登录网站时登录工作正常,但在执行以下步骤时出现错误, 1. 如果我登录到我的生产站点,我的开发站点无法运行。 2. 我们注意到的唯一区别是 is.ASPXAUTH cookie 是在登录生产站点时创建的。
在退出生产站点之前,我无法登录开发站点。 请建议解决此问题的解决方案。
public static void ConfigureAuth(IAppBuilder app)
{
app.UseKentorOwinCookieSaver();
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = redirectUri,
UseTokenLifetime = false,
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = context =>
{
string returnUrl = context.AuthenticationTicket.Properties.RedirectUri;
context.AuthenticationTicket.Properties.RedirectUri = "/members/register?returnUrl="+ returnUrl;
return Task.FromResult(0);
},
AuthenticationFailed = context =>
{
if (context.Exception.Message.StartsWith("OICE_20004") || context.Exception.Message.Contains("IDX10311"))
{
context.SkipToNextMiddleware();
context.Response.Redirect("/members/logon");
return Task.FromResult(0);
}
return Task.FromResult(0);
}
}
});
}
}
}
我面临的问题是,从 Office 365 登录后,它重定向到下面 url http://samples@company.com:88/members/register?returnUrl=http://samples@company.com:88/ 但它需要重定向到 http://samples@company.com:88 这个 link.
网站有提供注册功能吗?该网站似乎支持从 Azure AD 注册用户登录。如果我没理解错的话,我们可以通过下面的代码重命名网站发布的cookie-name,让两个网站的cookie分开工作:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
CookieName = "DevSite",
});