Azure AD認証とフォーム認証の両方をサポートできるMVC ASP.NET C#アプリケーションを開発しようとしています。フォームとAzure AD認証
私はそれについて読み、以下の結論に達したました:
私は、フォーム認証とAzureのADログインに私をリダイレクトし、ボタンのログインフォームを持っています。
私がADにログインすると、自動的に http://localhost/login.aspx?ReturnUrl=%2fにリダイレクトされます。
Startup.cs
public partial class Startup
{
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"];
private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"];
private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"];
string authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = postLogoutRedirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
}
}
AccountController.cs
public void SignIn()
{
// Send an OpenID Connect sign-in request.
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
public void SignOut()
{
// Send an OpenID Connect sign-out request.
HttpContext.GetOwinContext().Authentication.SignOut(
OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
}
public void EndSession()
{
// If AAD sends a single sign-out message to the app, end the user's session, but don't redirect to AAD for sign out.
HttpContext.GetOwinContext().Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType);
}
それはアプリがMVCであることを与えて、http://localhost/login.aspx?ReturnUrl=%2fに私をリダイレクトしない理由私の質問は次のとおりです。次のコードを使用して
私のプロジェクトにはaspxがありません。
あなたの質問は何を?私はポストでそれを見つけることができない;) –
こんにちは@RickvandenBosch。私の問題はなぜそれが私をlocalhost/login.aspxにリダイレクトするのかということでした。 –
MVCプロジェクトを作成する際にフォーム認証が**個々のユーザーアカウント**を選択することを意味するかどうかについて、問題を正しく理解するために確認したいと思いますか? –