Задать вопрос
  • Как сделать вот такой дизайн фона на веб странице?

    @pshevnin Автор вопроса
    Ankhena, Спасибо за ответ, не подскажете как это сделать в Figma? У меня сейчас каждая линия - отдельный объект, когда я выделяю их ысе с шифтом, могу экспортировать, но они все также по отдельности
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    Если вам интересно, проблема была в том, что я не заметил кавычек в Postman при отправке токена. В своё оправдание скажу что скрипт или конфиг для Postman писал не я, но всё равно чувствую себя невнимательным идиотом
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    OwDafuq, Хорошо, спасибо, до 18:30 тогда сам попытаюсь решить если не получится тогда напишу после.
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    OwDafuq, Возможно это как-то поможет, но когда я убрал Authorize для тестов,
    string token = HttpContext.Request.Headers["Authorization"].FirstOrDefault()?.Replace("Bearer ", "");
    Токен в лог выводится, а вот username, которое я добавлял в Claim, а claims в токен при генерации, равно null
    List<Claim> claims = new() {
    	new Claim(ClaimTypes.Name, username)
    };
    То есть получается программа не может из токена вытащить даже username, но я не могу понять почему
    string username = HttpContext.User.Identity.Name;
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    OwDafuq, Если в предыдущем моём комментарии то, как должен выглядеть этот код, то ошибка осталась та же самая
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    OwDafuq,Возможно очень глупый вопрос, но это должно выглядеть так?
    builder.Services.AddAuthentication(options => {
    	options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    	options.DefaultSignInScheme = JwtBearerDefaults.AuthenticationScheme;
    	options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    	})
    	.AddJwtBearer(options => {
    		options.TokenValidationParameters = new TokenValidationParameters {
    			
    			ValidateIssuer = true,
    			
    			ValidIssuer = AuthOptions.ISSUER,
    			
    			ValidateAudience = true,
    			
    			ValidAudience = AuthOptions.AUDIENCE,
    			
    			ValidateLifetime = true,
    			
    			IssuerSigningKey = AuthOptions.GetSymmetricSecurityKey(),
    			
    			ValidateIssuerSigningKey = true,
    		};
    		
    		
    	});
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    AshBlade, 64ff0eaeed493492075614.png Именно туда я и добавил
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    OwDafuq, Насколько я понял, у options нет таких параметров, как DefaultAuthenticateScheme, DefaultSignInScheme ... По крайней мере у меня появляется ошибка cs1061 у всех трех параметров options. Возможно я что-то не так сделал
    builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    	.AddJwtBearer(options => {
    		options.TokenValidationParameters = new TokenValidationParameters {
    			
    			ValidateIssuer = true,
    			
    			ValidIssuer = AuthOptions.ISSUER,
    			
    			ValidateAudience = true,
    			
    			ValidAudience = AuthOptions.AUDIENCE,
    			
    			ValidateLifetime = true,
    			
    			IssuerSigningKey = AuthOptions.GetSymmetricSecurityKey(),
    			
    			ValidateIssuerSigningKey = true,
    		};
    		
    		options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    		options.DefaultSignInScheme = JwtBearerDefaults.AuthenticationScheme;
    		options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    	});
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    Александр, 64fefaa639b35733972560.png Вот все пакеты и версии, которые у меня установлены
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    Я добавил этот тэгБ и получаю ошибку: ystem.InvalidOperationException: The AuthorizationPolicy named: 'Bearer' was not found.
    at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies)
    at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
    at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
    at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
    at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
    at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    Можно ли, и как, если можно добавить эту настройку внутри файла Program.cs, чтобы не указывать каждый раз в контроллерах?
  • Почему не проходит Authorize?

    @pshevnin Автор вопроса
    public string GenerateAccessToken(string username) {
    
    	List<Claim> claims = new() {
    		new Claim(ClaimTypes.Name, username)
    	};
    
    	SymmetricSecurityKey key = new(Encoding.UTF8.GetBytes(AuthOptions.SECRETKEY));
    	SigningCredentials creds = new(key, SecurityAlgorithms.HmacSha256);
    
    	JwtSecurityToken token = new(
    	issuer: AuthOptions.ISSUER,
    		audience: AuthOptions.AUDIENCE,
    		claims: claims,
    		expires: DateTime.UtcNow.AddMinutes(AuthOptions.ACCESSTOKENLIFETIME),
    		signingCredentials: creds
    	);
    
    	return new JwtSecurityTokenHandler().WriteToken(token);
    
    }

    Вот код генерации токена
  • Как добавить сервисы и использовать их в контроллерах?

    @pshevnin Автор вопроса
    Спасибо за ответ, но у меня возникла такая проблема:
    Вот так выглядит конструктор:
    private readonly ITokenService _tokenService;
    
    public AuthController(ILogger<AuthController> logger, UserContext dbContext, ITokenService tokenService) {
    	_logger = logger;
    	_dbContext = dbContext;
    	_tokenService = tokenService;
    }

    Вот так я добавил сервис в Program.cs (до того, как создаю app):
    builder.Services.AddScoped<ITokenService, TokenService>();

    И получаю такую ошибку:

    System.AggregateException: 'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: WebApi.Services.ITokenService Lifetime: Scoped ImplementationType: WebApi.Services.TokenService': Unable to resolve service for type 'WebApi.AuthOptions' while attempting to
  • Почему маленькая скорость скачивания с сервера, который поднят на личном ПК?

    @pshevnin Автор вопроса
    AUser0, сеть нагружена на 1%, замерял скорость на обоих концах, конечно не 100мб/с (~90) но и не 600кб/с
  • Почему маленькая скорость скачивания с сервера, который поднят на личном ПК?

    @pshevnin Автор вопроса
    Можно ли скорость немного поднять в текущих условиях?
  • Как убрать отступы по бокам?

    @pshevnin Автор вопроса
    Сергей delphinpro, Я выяснил, что это svelte добавляет отступ. Фоновое изображение я устанавливаю у компонента main, который из svelte, и у которого, судя по всему есть неизменяемый отступ. Если я сделаю фон через body, то мой градиент разбивается на несколько изображений, у которых есть видимые границы
  • Как убрать отступы по бокам?

    @pshevnin Автор вопроса
    Максим, да, я понял о чём вы, такое ощущение, что фреймворк зачем то добавляет отступы после, потому что я уже перепробовал всё, в том числе удалить все отступы у всех элементов
  • Как убрать отступы по бокам?

    @pshevnin Автор вопроса
    Максим, Я делаю во фреймворке svelte, и по идее, это и есть самый общий. Других нет, или я пока не разобрался
  • Как реализовать UML диаграмму для javaScript?

    @pshevnin Автор вопроса
    Вадим,
    Так может стоит задуматься, а правильно ли Вы реализовали свою игру? Усвоили ли материал должным образом?
    Это логичное замечание, но предмет подразумевал выбор темы из списка предоставленных, а тема, которую я выбрал подразумевала именно такую реализацию. Просто шаблоны для документов стандартные и я сейчас думаю, как наименее болезненно описать свой проект стандартным шаблоном