【发布时间】:2016-10-12 21:52:51
【问题描述】:
我想将 ASP.NET 应用程序配置为根据环境使用不同的身份验证。因此,对于开发环境,我想使用 Windows 身份验证,而对于所有其他环境,我想使用 Facebook 身份验证。
我已经为非开发环境配置了 Facebook 身份验证。如何为开发环境配置 Windows 身份验证? Windows 身份验证仅在开发过程中使用,因此开发人员不必每次在 VS 中运行应用程序时都必须登录。我们有多个开发人员,这意味着 Windows 身份将根据执行者的不同而有所不同。创建 windows 身份后,我将向 windows 身份添加声明。
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?}");
});
}
}
【问题讨论】:
标签: asp.net-core .net-core coreclr