我无法使用Negotiate或Azure AD进行条件授权。在Startup.cs类中,我指定
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Cipher {
public static void main(String[] args) throws IOException {
System.out.println("Enter fileName: ");
Scanner input = new Scanner(System.in);
String fileName = null;
File file = null;
while (true) {
fileName = input.nextLine();
file = new File(fileName);
if (file.isFile()) {
System.out.println(file + " already exists! Please try again:");
}
else {
break;
}
}
FileWriter writer = new FileWriter(file);
}
}
在这种情况下,“协商”授权不起作用
如果我指定
services.AddAuthentication(options =>
{
options.DefaultScheme = OpenIdConnectDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddNegotiate()
.AddOpenIdConnect("AzureAD", options =>
{
options.Authority =
"https://login.microsoftonline.com/--";
options.ClientId = "--";
options.ClientSecret = "--";
options.ResponseType = OpenIdConnectResponseType.IdToken;
options.CallbackPath = "--";
options.SignedOutRedirectUri = "https://localhost:5001/";
options.TokenValidationParameters.NameClaimType = "name";
options.NonceCookie.SameSite = SameSiteMode.Unspecified;
options.CorrelationCookie.SameSite = SameSiteMode.Unspecified;
}).AddCookie();
Azure AD授权停止工作。 谢谢!