Asp. Net Базовая авторизация, не ограничивающая доступ - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь добавить авторизацию к своему Asp. Net Core Api. Я использую Asp. Net Core Identity. Я настроил аутентификацию следующим образом:

services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<DbContext>();

services.AddAuthentication()
    .AddTwitter(o =>
    {
        o.ConsumerKey = Configuration["Authentication:Twitter:ConsumerAPIKey"];
        o.ConsumerSecret = Configuration["Authentication:Twitter:ConsumerSecret"];
        o.RetrieveUserDetails = true;
    })
    .AddIdentityServerJwt();

services.AddAuthorization(o =>
{
    o.DefaultPolicy = new AuthorizationPolicyBuilder(CookieAuthenticationDefaults.AuthenticationScheme)
        .RequireAuthenticatedUser()
        .Build();
});

services.AddIdentityServer()
    .AddApiAuthorization<ApplicationUser, DbContext>();

И:

app.UseRouting();

app.UseAuthentication();
app.UseIdentityServer();
app.UseAuthorization();

app.UseEndpoints(endpoints =>

В моем контроллере я добавил атрибут Authorize:

[ApiController]
[Route("[controller]/[action]")]
[Authorize]
public class RestrictedController : ControllerBase

похоже, аутентификация работает - я могу войти в систему с помощью твиттера и получить идентификатор текущего субъекта. Тем не менее, кажется, что нет никакой разницы, вошел ли я в систему или нет, я все еще могу получить доступ к контроллеру. Я что-то пропустил?

...