我在AddAuthentication
中使用netcoreapp2.0
,我需要根据当前HttpContext
进行不同的配置。
自2.0 the auth changes以来,在Configure
中无法再使用
///NOT WORKING IN 2.0 - Obsolete
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
//...
});
app.UseGoogleAuthentication(new GoogleOptions()
{
//...
}
我正在使用这些选项根据HttpContext
app.UseWhen(...)
中的值自定义身份验证
现在通过服务执行配置:
services.AddAuthentication("Cookies")
.AddCookie("Cookies", options =>
{
//...
});
但是,服务ConfigureServices
在app
中的Configure
之前被实例化,因此管道中还没有上下文。
是否有任何解决方法来复制此类配置?
答案 0 :(得分:0)
您可以添加两个Cookie身份验证方案,并在控制器上指定使用您需要的方案。
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services
.AddAuthentication()
.AddCookie("Cookie1", option1 =>
{
// config cookie1
})
.AddCookie("Cookie2", option2 =>
{
// config cookie2
});
}
}
[Authorize(AuthenticationSchemes = "Cookie1")]
public class FooController
{
}
[Authorize(AuthenticationSchemes = "Cookie2")]
public class BarController
{
}