问题描述: 在使用ADFS进行身份验证的MVC应用程序中,重定向至ADFS登录页面后,返回到MVC控制器方法时,无法使用该方法。
解决方法:
确保已正确配置ADFS身份验证,并在应用程序中添加ADFS作为身份验证提供程序。
确保将ADFS登录页面的URL作为授权终结点添加到应用程序的Startup.cs文件中的ConfigureServices方法中:
public void ConfigureServices(IServiceCollection services)
{
//其他代码...
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "https://your-adfs-server/adfs";
options.ClientId = "your-client-id";
options.ClientSecret = "your-client-secret";
options.ResponseType = "code";
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("openid");
options.Scope.Add("profile");
options.TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "name"
};
});
//其他代码...
}
[Authorize]
public IActionResult MyMethod()
{
//方法代码...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//其他代码...
app.UseAuthentication();
//其他代码...
}
将上述代码中的"your-app-url"替换为应用程序的URL。
这些解决方法应该有助于解决ADFS重定向导致MVC控制器方法无法使用的问题。
下一篇:ADFS中多个资源的Token