Czy wykorzystując identity w asp.net mvc sporo część kodu automatycznie wygenerowanego usuwacie ? Ponieważ mam wrażenie, że tam ponad 50% jego jest mi nie potrzebne, lecz nie chcę czegoś usunąć i później żeby nie działało coś prawidłowo. Jak wy to robicie ?
Ja czasami tworzę 2 projekty, jeden pusty drugi z autoryzacją.
Nie do końca pamiętam jak implementuje się te mechanizmy i korzystam ze "ściągi" aby się nie pomylić :-D
a może ktoś z Was wrzuciłby do repo taką bazówkę tzn. czysta aplikacja z autoryzacją + role, pełny crud z przypisywaniem ról.... taki czysty okrojony o niepotrzebne rzeczy.
ot taka prośba i inicjatywa aby to mieć i na nowo nie wyważać drzwi z każdym nowym projektem.
Niby nie jest "czysty", ale może ci się przyda https://github.com/bartekkois/AutomatedInvoiceGenerator/tree/master/src/AutomatedInvoiceGenerator
Pytasz o usuwanie?
Ja opracowałem sobie podkładkę do aplikacji ASP.NET MVC, stworzyłem ją bez autentykacji, a samo Identity zaprułem implementując każdy interfejs z ręki, od początku. Trochę mi tego wyszło, ale przynajmniej mam pełną kontrolę nad tym co się dzieje w programie.
To jest wszystko co potrzebujesz
Context bazodanowy
public class AuthContext : IdentityDbContext<ApplicationUser>
{
public AuthContext()
: base("AuthDb")
{
}
}
Jakiś connectrion string
<connectionStrings>
<add name="AuthDb" connectionString="******" />
</connectionStrings>
Jakieś repo czy inne cudo które będzie działać na UserManager
. Poniższy kod może nie jest najlepszej jakości ale idee zrozumiesz
public class AuthRepository : IDisposable
{
private readonly AuthContext ctx;
private readonly UserManager<ApplicationUser> userManager;
public AuthRepository()
{
ctx = new AuthContext();
userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(ctx));
}
public async Task<IdentityResult> RegisterUser(UserModelDto userModelDto)
{
var user = new ApplicationUser
{
UserName = userModelDto.UserName,
City = userModelDto.City
};
var result = await userManager.CreateAsync(user, userModelDto.Password);
return result;
}
public async Task<ApplicationUser> FindUser(string userName, string password)
{
var user = await userManager.FindAsync(userName, password);
return user;
}
public void Dispose()
{
ctx.Dispose();
userManager.Dispose();
}
}
Klasę którą dziedziczy po IdentityUser
public class ApplicationUser : IdentityUser
{
public string City { get; set; }
}
Do tego oczywiście jakaś baza danych + odpowiednie paczki nugetów.
Tutaj w tym repo, które ktoś wcześniej podał nie widzę aby była klasa odpowiedzialna za rejestrację jak i widok rejestracji:
https://github.com/bartekkois/AutomatedInvoiceGenerator/tree/master/src/AutomatedInvoiceGenerator
Posiadacie jakieś repo z miarę "czystym" identity ?
Czy kontroler ManageController jest mocno potrzebny ? Ponieważ został on wygenerowany automatycznie.
Nadziany Szczur napisał(a):
Czy kontroler ManageController jest mocno potrzebny ? Ponieważ został on wygenerowany automatycznie.
Jeśli będziesz go potrzebował to będzie potrzebny.
Nadziany Szczur napisał(a):
Tutaj w tym repo, które ktoś wcześniej podał nie widzę aby była klasa odpowiedzialna za rejestrację jak i widok rejestracji:
https://github.com/bartekkois/AutomatedInvoiceGenerator/tree/master/src/AutomatedInvoiceGenerator
Posiadacie jakieś repo z miarę "czystym" identity ?
Ja w tym projekcie wywaliłem rejestrację o ile pamiętam. Konta dodaje użytkownik o uprawnieniach admina z poziomu panelu.
To raczej mało przydatne mi logowanie bez rejestracji. Chciałbym wyrzucić niepotrzebny kod, ale nie wiem czy w ten sposób później nie będę miał jakiś błędów których nie będę w stanie naprawić. To zostawić całe identity bez zmian ?
Zastanów się jak twój system ma działać i zostaw to co potrzebne.
Chcę mieć logowanie, rejestrację oraz możliwość tworzenia ról i dodawania do nich użytkowników. I jeszcze inne pytanie korzystać z code firsta czy database firsta ?
A jesteś programistą C# czy SQL? Jeśli to pierwsze, to code first, jeśli drugie to database first.
Chcę mieć logowanie, rejestrację oraz możliwość tworzenia ról i dodawania do nich użytkowników. Co trzeba w tym przypadku zostawić ? Tylko nie piszcie, że to co potrzebne. Chodzi mi o konkrety.