vNext. AspNet.Identity og tilpasset Brukerbase. Base anordnet unntak

stemmer
5

Jeg prøver å forstå vNext.
Jeg skrev tilpasset Brukerbase, som fungerer med MongoDB og implementerer disse grensesnittene:

  public class UserStore : IUserStore<ApplicationUser>, IUserPasswordStore<ApplicationUser>, IUserSecurityStampStore<ApplicationUser>,
    IUserLoginStore<ApplicationUser>, IUserClaimStore<ApplicationUser>, IUserEmailStore<ApplicationUser>, IUserRoleStore<ApplicationUser>,
    IUserTwoFactorStore<ApplicationUser>

I Startup.cs la til:

app.UseServices(services =>
        {

            services.AddIdentity<ApplicationUser>()
                .AddUserStore(() => { return new UserStore(); })
                .AddUserManager<UserManager<ApplicationUser>>()
                .AddHttpSignIn();

            services.AddMvc();
        });

Deretter prøvde å bruke uendret AccountController fra Visual Studio mal og har problemer.
Når du logger deg på jeg får ObjectDisposedException i UserStore.FindByNameAsync () - noe som kalles UserStore.Dispose ().
I UserManager koden på github.com/aspnet Store.Dispose () kalt bare i UserManager.Dispose ().
Jeg kan bare ignorere samtaler Kast og alt fungerer fint, men dette er ikke god måte.
Så jeg har noen ideer hva skal jeg gjøre

PS Spørsmålet er: hva (og hvorfor) kan kalle UserStore.Dispose ()?

Publisert på 29/08/2014 klokken 20:30
kilden bruker
På andre språk...                            


1 svar

stemmer
1

I vNext, er DI bygget i og styrer levetiden for identitetstjenester. Du er sannsynligvis prøver å bruke identitet etter tjenestene har blitt avhendet, som standard identitetstjenester har levetid scoped på en forespørsel, så hvis for eksempel, er du prøver å henge på en referanse til en bruker manager, og bruke det på tvers av flere forespørsler, at ville føre til ObjectDisposedException.

Svarte 03/09/2014 kl. 21:11
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more