Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在一行中同时使用身份验证和Cookie验证ASP.NET Core 2.2_C#_Asp.net_Authentication_Asp.net Identity_Asp.net Core 2.2 - Fatal编程技术网

C# 在一行中同时使用身份验证和Cookie验证ASP.NET Core 2.2

C# 在一行中同时使用身份验证和Cookie验证ASP.NET Core 2.2,c#,asp.net,authentication,asp.net-identity,asp.net-core-2.2,C#,Asp.net,Authentication,Asp.net Identity,Asp.net Core 2.2,我正在设置一个新的ASP.NET Core 2.2 web应用程序。我希望连续有两个独立的身份验证过程。首先,您注册为一家公司,整个公司只有一个注册数据,因此每个员工都有相同的注册数据。一旦进入“公司区域”,每个员工的实际登录屏幕就会出现 对于公司登录,我想使用身份验证。 对于员工的第二个身份验证过程,我想使用cookie身份验证,这样员工可以轻松地登录和注销,但仍然在他们的“公司环境”中 有人知道如何配置这两个身份验证过程,以便我能够连续使用它们吗 public void配置服务(IServi

我正在设置一个新的ASP.NET Core 2.2 web应用程序。我希望连续有两个独立的身份验证过程。首先,您注册为一家公司,整个公司只有一个注册数据,因此每个员工都有相同的注册数据。一旦进入“公司区域”,每个员工的实际登录屏幕就会出现

对于公司登录,我想使用身份验证。 对于员工的第二个身份验证过程,我想使用cookie身份验证,这样员工可以轻松地登录和注销,但仍然在他们的“公司环境”中

有人知道如何配置这两个身份验证过程,以便我能够连续使用它们吗

public void配置服务(IServiceCollection服务)
{
//1.公司(租户)认证
服务.附加性(选项=>
{
//密码设置。
options.Password.RequireDigit=false;
options.Password.RequireLowercase=true;
options.Password.RequireNonAlphanumeric=true;
options.Password.RequireUppercase=true;
options.Password.RequiredLength=8;
options.Password.RequiredUniqueChars=1;
options.Lockout.DefaultLockoutTimeSpan=TimeSpan.FromMinutes(5);
options.locket.MaxFailedAccessAttempts=10;
options.locket.AllowedForNewUsers=true;
options.User.AllowedUserNameCharacters=“abcdefghijklmnopqrstuvwxyzabefghijklmnopqrstuvwxyz012456789-.@+”;
options.User.RequireUniqueEmail=true;
})
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
services.configureApplicationOK(选项=>
{
options.Cookie.HttpOnly=true;
options.ExpireTimeSpan=TimeSpan.FromMinutes(5);
options.LoginPath=“/Identity/Account/Login”;
options.LogoutPath=“/Identity/Account/Logout”;
options.AccessDeniedPath=“/Identity/Account/AccessDenied”;
options.SlidingExpiration=true;
});
//2.员工(用户)身份验证
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,选项=>
{
options.Cookie.HttpOnly=true;
options.ExpireTimeSpan=TimeSpan.FromMinutes(5);
options.LoginPath=“/Users/Login”;
options.LogoutPath=“/Users/Logout”;
options.AccessDeniedPath=“/Users/AccessDenied”;
options.SlidingExpiration=true;
options.EventsType=typeof(CustomCookieAuthenticationEvents);
});
services.addScope();
services.AddMvc(配置=>
{
//小试验二将两个方案都添加到AuthorizationPolicyBuilder中,但实际上不起作用。。。
var policy=new AuthorizationPolicyBuilder(IdentityConstants.ApplicationScheme,CookieAuthenticationDefaults.AuthenticationScheme)。requireAuthenticationDuser().Build();//1.租户,2.用户
config.Filters.Add(新的授权过滤器(策略));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
到目前为止,只显示租户(公司标识)的登录屏幕。它不会强迫我也以用户身份登录(员工-cookie身份验证)。 非常感谢