Авторизация в IIS говорит, что метод 405 не разрешенC#

Место общения программистов C#
Ответить
Anonymous
 Авторизация в IIS говорит, что метод 405 не разрешен

Сообщение Anonymous »


Мой код AddIdentityServices

public static IServiceCollection AddIdentityServices (это службы IServiceCollection, конфигурация IConfiguration) { Services.AddIdentityCore(opt => { opt.Password.RequireDigit = ложь; opt.Password.RequireNonAlphanumeric = false; opt.Password.RequireLowercase = false; }) .AddRoles() .AddEntityFrameworkStores() .AddSignInManager() .AddDefaultTokenProviders(); ключ var = новый SymmetricSecurityKey(Encoding.UTF8.GetBytes(config["TokenKey"])); Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(opt => { opt.TokenValidationParameters = новый Microsoft.IdentityModel.Tokens.TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = ключ, ValidateIssuer = ложь, Валидатаудиенс = ложь, }; }).AddIdentityCookies(); Services.AddAuthorization(opt => { }); Services.AddTransient(); Services.AddScoped(); услуги возврата; } Мой код CreateToken

публичная строка CreateToken (пользователь AppUser) { var role_name = _userManager.GetRolesAsync(user).Result.FirstOrDefault().ToString(); вар утверждение = новый список { новое утверждение (ClaimTypes.Name, user.UserName), новое утверждение (ClaimTypes.NameIdentifier, user.Id), новая заявка(ClaimTypes.Email, user.Email), новое утверждение (ClaimTypes.Role,имя_роли.ToString()) }; ключ var = новый SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["TokenKey"])); вар creds = новые SigningCredentials (ключ, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = новый SecurityTokenDescriptor { Тема = новый ClaimsIdentity(заявление), Срок действия истекает = DateAndTime.Now.AddDays(10), SigningCredentials = кредиты, }; вар tokenHandler = новый JwtSecurityTokenHandler (); вар токен = tokenHandler.CreateToken(tokenDescriptor); вернуть tokenHandler.WriteToken(токен); } Код авторизации в контроллере

[Авторизовать(Роли = "Администратор")] [HttpPut, Маршрут("setAction")] общедоступная асинхронная задача setAction (RequestVehicle requestVehicle) { возвращаться ... } Этот код в порядке, и в моей локальной системе (Windows 10) пользователь с правами администратора может вызывать функцию setAction, и все в порядке.

Но при публикации моего проекта на сервере (сервер Windows 202, IIS 10.0.2) эта функция сообщает об ошибке: 405 Метод не разрешен


Изображение


Почему IIS сообщает об ошибке 405?

Я добавляю имя роли для утверждения новое утверждение (ClaimTypes.Role,role_name.ToString()) Я не знаю, правильно это или нет
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»