繁体   English   中英

您如何解决错误“无法加载文件或程序集'microsoft aspnetcore razor runtime 3.1 1”,

[英]How do you solve the error “could not load file or assembly 'microsoft aspnetcore razor runtime 3.1 1”,

我之前已经发布过这个问题,但是作为新手,我想学习如何写一个“正确”的问题(以防你试图帮助我而我没有立即回复,如果不是全部的话,我想把它做对希望我已经掌握了窍门)

这只是注册/登录代码,其目的是不言自明的,出现错误(无法加载文件或程序集 'microsoft aspnetcore razor 运行时 3.1 1)发生在 AddControllers() 方法中的服务注册 class 中,我尝试添加错误中指定的 package 但它不起作用,我尝试了其他一些类似的包但结果相同,当我构建时我没有收到错误或警告但是当应用程序运行时我收到错误,希望这是足够的数据来处理。

//controller class Login and registration
        [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
            public class IdentifyMe : Controller
            {
                private readonly IIdentify _identify;
        
                public IdentifyMe(IIdentify identifying)
                {
                    _identify = identifying;
                }
        
                [HttpGet(Api_Routes.Identity.Register)]
                public async Task<IActionResult> Register(UserRegistration register)
                {
                    if (!ModelState.IsValid)
                    {
                        return BadRequest(new Unauthenticated
                        {
                            Errors=ModelState.Values.SelectMany(x=>x.Errors.Select(xx=>xx.ErrorMessage))
                        });
                    }
        
        
                    var authresponce = await _identify.RegisterAsync(register.Email, register.Password, register.User_Name);
        
                    if (!authresponce.Success)
                    {
                        return BadRequest(new Unauthenticated
                        {
                            Errors = authresponce.Errors
                        });
                    }
                    return Ok(new Authenticated
                    {
                        Token = authresponce.Token
                    });
                }
        
        
        
                [HttpGet(Api_Routes.Identity.Login)]
                public async Task<IActionResult> LoginAsync(User_login login)
                {
                    var authresponce = await _identify.LoginAsync(login.Password, login.email);
        
                    if (!authresponce.Success)
                    {
                        return BadRequest(new Unauthenticated
                        {
                            Errors = authresponce.Errors
                        });
                    }
                    return Ok(new Authenticated
                    {
                        Token = authresponce.Token
                    });
                }
        
        
            }
        
        // service registration
        
        public class Dbinstaller : IInstaller
        {
            public void Cleanner(IConfiguration configuration, IServiceCollection services)
            {
                var jwt = new JWTsettings();
                configuration.Bind(nameof(jwt), jwt);
                services.AddSingleton(jwt);
        
                services.AddAuthentication(x =>
                {
                    x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                    x.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
                    x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
                })
                    .AddJwtBearer(x =>
                    {
                        x.SaveToken = true;
                        var TokenValidationParameters = new TokenValidationParameters
                        {
                            ValidateIssuerSigningKey = true,
                            IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwt.Secret)),
                            ValidateIssuer = false,
                            ValidateAudience = false,
                            RequireExpirationTime = false,
                            ValidateLifetime = true
                        };
                    });
        
        
                services.AddSwaggerGen(x =>
                {
                    x.SwaggerDoc("v1", new OpenApiInfo { Title = "TXC API", Version = "v1" });
        
                    var security = new Dictionary<string, IEnumerable<string>>
                    {
                        {"Bearer", new string[0]}
                    };
        
                    x.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
                        { 
                         Description="JWT Authorization Header using the bearer scheme",
                         Name="Authorization",
                         In=ParameterLocation.Header,
                         Type=SecuritySchemeType.ApiKey
                        });
                    x.AddSecurityRequirement(new OpenApiSecurityRequirement
                    {
                        {new OpenApiSecurityScheme{Reference=new OpenApiReference
                        {
                            Id="Bearer",
                            Type=ReferenceType.SecurityScheme
                        }
                        },new List<string>() }
                    });
                });
        
                
        
        
        
                services.AddDbContext<DataContext>(opt =>
                opt.UseSqlServer(configuration.GetConnectionString("TXC Connection")));
                services.AddIdentityCore<IdentityUser>();
            }
        }
        
        
        
        
            //service registration, specified error occurs in Add controllers()    
                 public class In_App_Componentes : IInstaller
                    {
                        public void Cleanner(IConfiguration configuration, IServiceCollection services)
                        {
                            services.AddControllers().AddNewtonsoftJson(p => p.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver());
                            services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
                            services.AddScoped<IX_Change, The_center>();
                            services.AddScoped<IIdentify, Identify>();
                        }
                    }
    
    //service implementation class
    public class Identify : IIdentify
        {
            private readonly UserManager<IdentityUser> _manager;
    
            private readonly JWTsettings jwtset;
    
    
    
            public Identify(UserManager<IdentityUser> userManager, JWTsettings jW)
            {
                _manager = userManager;
                jwtset = jW;
            }
    
           
    
            public async Task<Authentication_result> RegisterAsync(string email, string password, string Username)
            {
                var exists = _manager.FindByEmailAsync(email);
    
                if (exists != null)
                {
                    return new Authentication_result
                    {
                        Errors = new[] { "User with this email already exists" }
                    };
                }
    
                var newPerson = new IdentityUser
                {
                    Email = email,
                    UserName = Username
                };
    
                var Creation = await _manager.CreateAsync(newPerson, password);
    
                if (!Creation.Succeeded)
                {
                    return new Authentication_result
                    {
                        Errors = new[] { "Invalid user!" }
                    };
                }
    
                return Generate_Authentication_Result(newPerson);
            }
    
            public async Task<Authentication_result> LoginAsync(string email, string Password)
            {
                var user = await _manager.FindByEmailAsync(email);
    
                if (user == null)
                {
                    return new Authentication_result
                    {
                        Errors = new[] { "User does not exists" }
                    };
                }
    
                var validate_password = await _manager.CheckPasswordAsync(user, Password);
    
                if (!validate_password)
                {
                    return new Authentication_result
                    {
                        Errors = new[] { "" }
                    };
                }
    
                return Generate_Authentication_Result(user);
            }
    
            private Authentication_result Generate_Authentication_Result(IdentityUser newPerson)
            {
                var Tokenhandler = new JwtSecurityTokenHandler();
                var key = Encoding.ASCII.GetBytes(jwtset.Secret);
                var TokenDescripter = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new[]
                   {
                       new Claim(JwtRegisteredClaimNames.Sub, newPerson.Email),
                       new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                       new Claim(JwtRegisteredClaimNames.Email, newPerson.Email),
                       new Claim("id",newPerson.Id)
    
                   }),
    
                    Expires = DateTime.UtcNow.AddHours(2),
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
                };
    
                var token = Tokenhandler.CreateToken(TokenDescripter);
    
                return new Authentication_result
                {
                    Success = true,
                    Token = Tokenhandler.WriteToken(token)
                };
            }
        }

Ciao,我试图在 NuGet 上搜索Microsoft.AspNetCore.Razor.Runtime v. 3.1.1但我只找到了 2.2.0。 我没有找到对 3.1.1 的任何引用。 无论如何,将Microsoft.AspNetCore.Identity.UI to 3.1.0应该可以解决这里提到的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM