当我尝试登录到使用Azure AD的自定义Web应用程序时出现错误We couldn't sign you in. Please try again.
。客户机密已过期,因此我想我可以创建一个新的机密并将其替换以查看是否可以解决该问题。但是我当前的应用似乎没有客户端密码。
我最初使用了很多样板代码进行设置,所以说实话我不知道这是怎么回事。下面是我的Startup.cs文件,在其中我从web.config文件中提取了客户端ID和其他内容。请注意缺少客户机密。
public partial class Startup
{
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
private static string aadInstance = EnsureTrailingSlash(ConfigurationManager.AppSettings["ida:AADInstance"]);
private static string tenantId = ConfigurationManager.AppSettings["ida:TenantId"];
private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"];
private static string replyUrl = ConfigurationManager.AppSettings["ida:ReplyUrl"];
private static string authority = aadInstance + tenantId;
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = replyUrl
});
}
private static string EnsureTrailingSlash(string value)
{
if (value == null)
value = string.Empty;
if (!value.EndsWith("/", StringComparison.Ordinal))
return value + "/";
return value;
}
有人可以指出我正确的方向吗?或者可能是完全不同的东西。登录后,它会进行大量重定向,并最终导致上述错误。
答案 0 :(得分:1)
结果是我访问的是http
而不是https
上的原始URL,这导致了问题。