我的应用程序分为生产和管理两个部门。
由于产品必须提供不同的输入才能在应用程序上进行身份验证,因此产品的登录页面有所不同。
我在启动时就这样做了
services.AddAuthentication(options => {
options.DefaultScheme = "OperadorAuth";
})
.AddCookie("OperadorAuth", "OperadorAuth", options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(1);
options.Cookie.Name = "OperadorAuth";
options.LoginPath = new PathString("/Production/Index");
options.LogoutPath = new PathString("/Production/Logout");
options.AccessDeniedPath = new PathString("/Production/AccessDenied/");
options.SlidingExpiration = true;
})
.AddCookie("AdminAuth", "AdminAuth", options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(1);
options.Cookie.Name = "AdminAuth";
options.LoginPath = new PathString("/Administration/Index");
options.LogoutPath = new PathString("/Administration/Logout");
options.AccessDeniedPath = new PathString("/Administration/AccessDenied/");
options.SlidingExpiration = true;
});
但是,这不起作用,因为在登录时我这样做并且在没有声明也没有任何身份验证标志的情况下,我尝试访问用户上下文。
await HttpContext.SignInAsync("AdminAuth",
new ClaimsPrincipal(userIdentity),
authProperties);
如果我对启动时默认分配的那个执行此操作,则我可以访问所有内容,并且用户已通过身份验证。
等待HttpContext.SignInAsync(“ OperadorAuth”, 新的ClaimsPrincipal(userIdentity), authProperties);
所以...我在这里想念什么?如果多个Cookie无法正常工作,那有什么意义呢?