MVC5 ASP.NET Identity

0

Korzystam z MVC5. W standardzie jest tam ASP.NET Identity w Code First jako membership provider. Baza do projektu, który tworzę jest już gotowa i nie posiada implementacji membershipa. Powiedzcie mi jak zintegrować ASP.NET Identity z docelową bazą danych? Myślę nad tym od dwóch dni bez efektów.

0

Dziedziczysz po odpowiednim kontekscie i dodajesz tam swoje DbSet. Dzedziczysz po ApplicationUser i dodajesz wlasciwosci dla uzytkownika...

Anyway. Najpierw pomysl, czy w ogole jest sens uzywania ASP.NET Identity, i czy naprawde potrzebujesz tak skomplikowanej zabawki.

0

Niestety musi być to ASP.NET Identity. Możesz podać więcej szczegółów? Nie trzeba dodawać membershipa "ręcznie" do docelowej bazy?

0

Okey. Źle się wyraziłem. Gdzie znajdę DbSet tabelek ASP.NET Identity?

0

W kontekscie bazowym (IdentityDbContext<>) sa dwa DbSet:

    public virtual IDbSet<TUser> Users { get; set; }
    public virtual IDbSet<TRole> Roles { get; set; }

gdzie TUser i TRole to parametry generyczne, TUser musi dziedziczyc po IdentityUser<>, a TRole po IdentityRole<>

IdentityUser<> zawiera 3 kolekcje:

    public virtual ICollection<TRole> Roles { get; private set; }
    public virtual ICollection<TClaim> Claims { get; private set; }
    public virtual ICollection<TLogin> Logins { get; private set; }

gdzie typy to:

where TLogin : IdentityUserLogin<TKey> where TRole : IdentityUserRole<TKey> where TClaim : IdentityUserClaim<TKey>

IdentityRole<> zawiera jedna kolekcje.

    public virtual ICollection<TUserRole> Users { get; private set; }
where TUserRole : IdentityUserRole<TKey>

I dzieki konwencjom + drobnej konfiguracji generuje sie te kilka tabelek, ktorych AspNetIdentity uzywa.

PS. Zainwestuj w dotPeek.

0

Możesz mi podać krok po kroku wymagane zmiany? Wystarczy tylko coś w stylu: "w IdentityModels.cs zmień na docelowy ConnectionString".

0

-.-' o to ci chodzi, zeby po prostu do wlasnej bazy ci te tabelki wrzucilo?
W takim razie w web.config dodaj connection string do twojej bazy, a potem przekaz nazwe tego stringa jako argument klasy bazowej dla kontekstu.
http://msdn.microsoft.com/pl-pl/data/jj592674.aspx

0

Czyli moja baza docelowa nie musi posiadać tych tabel? On przy pierwszej inicjacji je do niej doda?

0

Mam wrazenie, ze mowimy w innych jezykach...

0

Mój problem jest na pewno bardzo prosty. Proszę nie irytuj się. Zawsze tworzyłem w MVC4 + simplemembership. Otwierałem nowy projekt, dodawałem do niego bazę, pisząc ją w Code First. Potem do nowo utworzonego kontekstu wrzucałem DbSet<UserProfile>, oraz w kontrolerze zmieniałem ze starego kontekstu na nowy.

Mój problem polega na tym, że nie mogę zrobić tego samego w MVC5 + ASP.NET Identity.

0

Obejrzałem. Niestety dalej nie wychodzi.
The entity type ApplicationUser is not part of the model for the current context.

0

Szczerze mówiąc, to mi też rozwiązanie z MVC4 bardziej odpowiadało. Czy teraz w jakiś ludzki / prosty sposób da się zaprojektować całą bazę i mieć ją jedną? Dla mnie jest kłopotem trzymanie tego w dwóch bazach.

Chciałbym po prostu jedną tabelkę z rolami, drugą (własną) z użytkownikami, która z kolei ma relacje z innymi i nie potrafię tego zrobić - po części przez brak mojego doświadczenia, a po części dlatego, że teraz mam użytkowników w drugiej bazie (domyślnie). Nie potrafię znaleźć nic sensownego, gdzie jest opisane jak sobie z tym poradzić.

Znalazłem podobny temat na tm forum, ale żadnej odpowiedzi rozwiązującej problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1