異なる認証を使用するようにASP.NETアプリケーションを構成する場合は、環境によって異なります。開発環境ではWindows認証を使いたいが、他のすべての環境ではFacebook認証を使いたい。Windows認証を使用するようにASP.NETコアアプリケーションを構成するにはどうすればよいですか?
私はすでに非開発環境向けにFacebook認証を設定しています。開発環境用のWindows認証を設定するにはどうすればよいですか? Windows認証は開発中にのみ使用されるため、開発者はVSでアプリケーションを実行するたびにログインする必要はありません。私たちには複数の開発者がいます。つまり、誰がそれを実行しているかによってWindowsのIDが異なることになります。ウィンドウのアイデンティティが作成されたら、ウィンドウのアイデンティティにクレームを追加します。
public class Startup
{
public Startup(IHostingEnvironment env)
{
// some stuff here for building configuration
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthorization();
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime)
{
if(env.IsDevelopment())
{
// How do i use windows authentication here
}
else
{
// this is my custom extension method
app.UseFacebookAuthentication();
}
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}