2014-08-28 15 views
14

Próbuję zaimplementować niestandardowe uwierzytelnianie przy użyciu nowej tożsamości ASP.NET w projekcie MVC 5.Jak używać tożsamości ASP.NET bez bazy danych

Mam jedną nazwę użytkownika i hasło , które chcę użyć do ograniczenia stron witryny, które użytkownik może zobaczyć za pomocą znaczników [Authorize] w kontrolerach i widokach. (Łatwy)

Przeprowadzam migrację z modelu FormsAuthentication, dzięki czemu było to tak proste, jak wpisanie poświadczeń w pliku web.config.

Bo mam tylko jedną nazwę użytkownika i hasło nie chcesz korzystać z bazy danych jako UserStore zamiast chcę Identity ASP.NET odzyskać nazwę użytkownika i hasło z niestandardowym configurationsection w internecie. config (nie martw się o tę część).

Po wielu wyszukiwaniu nie mogę znaleźć próbki kodu, która nie będzie bazować na uwierzytelnianiu tożsamości ASP.NET.

Poszukuję więc przykładowego kodu, który w momencie uwierzytelnienia, użytkownik może wprowadzić niestandardowy kod, aby sprawdzić nazwę użytkownika & hasło w odniesieniu do poświadczeń w niestandardowym ConfigurationSection pliku web.config.

Czy ktoś może wskazać mi właściwy kierunek, dzięki.

Aktualizacja: Próbowałem, patrząc na ten kod próbki, ale nawet nie skompilować po wyjęciu z pudełka .. słabe. http://code.msdn.microsoft.com/Simple-Aspnet-Identiy-Core-7475a961

Aktualizacja: Powodem, dla którego nie chcę używać FormsAuthentication jest to, że piszę pakiet Nuget który zostanie zainstalowany w aplikacji internetowej. Jedną z rzeczy, którą zrobi pakiet NuGet, jest utworzenie niestandardowego ConfigurationSection w pliku web.config, który zawiera (między innymi) jedną nazwę użytkownika i hasło. Myślałem, że to będzie bezpieczniejsze, ponieważ nie zmieni żadnych istniejących ustawień FormsAuthentication aktualnie w docelowej aplikacji internetowej.

Aktualizacja: Myślę, że mam to działa. Wkrótce opublikuje wyniki.

- Lee

+1

programu ASP.NET MVC '[Autoryzacja]' atrybut może być używany z FormsAuthentication; nie musisz używać ASP.NET Identity, a tak naprawdę nie ma to większego sensu. Czy masz problemy z działaniem atrybutu "[Autoryzuj]" w procesie FormsAuthentication, czy jest jakiś inny powód, dla którego nie chcesz już używać FormsAuthentication? – Claies

+1

Aby uzyskać więcej informacji, zobacz http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx#_Creating_MVC_project – Claies

+0

Witam, więc był pierwotnie przy użyciu FormsAuthentication i nie ma problemu z tym .. jednak chcę używać nowych rzeczy tożsamości, ponieważ piszę pakiet NuGet, którego kod wymaga własnych poświadczeń podczas uruchamiania i nie chciałem zakłócać żadnych istniejących istniejących ustawień FormsAuthentication wstawiając moje do web.config po zainstalowaniu pakietu NuGet. –

Odpowiedz

0

Nie trzeba przenieść do ram Identity, FormsAuthentication nadal działa. I Andrew ma rację, używanie struktury Identity ma tu niewielkie znaczenie, ponieważ chodzi o zarządzanie użytkownikami.

Jeśli jednak będziesz go nalegać, możesz zaimplementować własne UserManager i IUserStore. Niektóre wskazówki można znaleźć w Scott K. Allen blog post. Zobacz linki na dole - przykłady implementacji - możesz wziąć niektóre z nich i przekonwertować na swoje potrzeby.

Wyobrażam sobie, że twoje IUserStore będzie proste, ponieważ istnieje tylko jeden użytkownik i większość metod nie musi być zaimplementowana.I za te wymagane (myślę, że trzeba FindUserById i pokrewne), musisz dotrzeć do web.config poprzez ConfigurationManager

+0

Argh, Miałem nadzieję na " kompletne rozwiązanie, które nie wymaga db i pobiera poświadczeń z web.config. Próbowałem bezskutecznie ulepszać różne próbki kodu. –

+0

Obawiam się, że nie będzie kompletnego rozwiązania dla twojej sprawy. – trailmax

+0

Czy mówisz, że nie można napisać niestandardowej implementacji tożsamości ASP.NET, która pobiera poświadczenia z niestandardowego elementu ConfigurationSection w pliku web.config? Myślałem, że celem nowej tożsamości jest sprawienie, by była ona rozszerzalna? –

Powiązane problemy