在ASP.NET 5、MVC 6中,我可以在选项中更改外部身份验证cookie的名称,但这似乎已从AspNetCore.Identity
RC2
库中的新提供程序中删除。
我有这个设置;
class Startup {
...
public void ConfigureServices(IServiceCollection services){
services.AddIdentity<Member, Role> ... // identity wired up
}
public void Configure(IApplicationBuilder app, ILoggerFactory logger) {
// .. other wiring
app
.UseIdentity()
.UseGoogleAuthentication
(new GoogleOptions {
ClientId = Constants.Google.Client,
ClientSecret = Constants.Google.Secret,
Scope = {"email", "profile"}
});
app.UseMvc(routes => {
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
过去有一个AuthenticationType
属性,我可以将其设置为string
,它将控制cookie名称;但那已经过去了。
我读过其他帖子,上面说要尝试SignInScheme
和AuthenticationScheme
,我照做了,但这会让我开始错误地认为有No Provider to Handle this Scheme
。
我能为它做点什么吗?
以下是如何替换用于外部cookie的默认名称。
services.AddIdentity<Member, Role>(options =>
{
options.Cookies.ExternalCookie.CookieName = "name";
});
这是我在VS2017 中的工作
在Startup.cs ConfigureServices()中:
services.ConfigureApplicationCookie(options => {
options.Cookie.Name = "NewCookieName";
});
ASP.NET Core 2.2
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.Name = "my_cookie";
});