2015-12-17 20 views
10

miałem pewne problemy z użyciem autoryzacji przed więc mam nowiutki wszystko - nowy komputer, nowy OS, świeża instalacja VS, nowej aplikacji i DB w nowej grupy zasobów na platformie Azure. Cały shabang.nie można przechowywać użytkowników w domyślnej aplikacji MVC

Mogę potwierdzić, że mogę zalogować się do bazy danych Azure DB, jak pokazują poniższe zrzuty ekranu.

enter image description here

widzę baz danych, tabele, użytkownicy itp

enter image description here

Problem polega na tym, że chociaż to działa lokalnie (przy użyciu ciąg domyślny zapewnione podłączenie automagicznie dla mnie), nie działa zbyt dobrze na Azure (chociaż używam pliku publikowania z tego miejsca). Było napisane coś o tym, że plik nie został znaleziony i zgodnie z this answer, potrzebowałem zmienić ciąg połączenia.

Po zmianie tego ustawienia pojawia się następujący błąd. Należy pamiętać, że zapora jest otwarta i że mogę uzyskać dostęp do bazy danych po uruchomieniu kodu moich aplikacji. Czuję, że coś jest nie tak, kiedy część uwierzytelniania jest konfigurowana automatycznie. Nie mam jednak pomysłów, jak go rozwiązać.

[SqlException (0x80131904): Logowanie nie powiodło się dla użytkownika "Chamster". Do tej sesji przypisano identyfikator śledzenia "09121235-87f3-4a92-a371-50bc475306ca". Podaj ten identyfikator śledzenia do obsługi klienta, gdy potrzebujesz pomocy.]

Ciąg połączenia, którego używam, jest to.

Server=tcp:f8goq0bvq7.database.windows.net,1433; 
Database=Squicker; 
User [email protected]; 
Password=Abc123(); 
Encrypt=True; 
TrustServerCertificate=False; 
Connection Timeout=10; 

Ten problem przez pewien czas mi przeszkadzał, a ja zapłacę za dwa dni. Każda sugestia jest bardzo doceniana.

+1

Ta odpowiedź może być pomocna: http://stackoverflow.com/a/25220761/5642735 – alxersov

+0

@aersh Czy mógłbyś podać obraz i/lub opis, jak dotrzeć do nowego portalu (w przeciwieństwie do klasyczny w tej odpowiedzi)? Nie twierdzę, że to jest poprawna odpowiedź, ale nie zaszkodzi to jasno powiedzieć. Uważam, że mój plik konfiguracyjny jest używany, ponieważ po zmianie nazwy użytkownika i przesłaniu go na platformę Azure komunikat o błędzie odnosi się do zmienionej nazwy. Jednak na wszelki wypadek wypróbuję to. –

Odpowiedz

4

Wierzę, że udało mi się rozwiązać ten dziwny problem. Wygląda na to, że użytkownik, którego używam, mimo że jest administratorem z wszystkimi dzwonkami i gwizdkami, nie jest rozpoznawany jako admin, gdy jest używany w łańcuchu połączenia i próbuje utworzyć tabele (co ma miejsce w przypadku pierwszej rejestracji).

Moje rozwiązanie było utworzyć dwa loginy - jeden z db_owner rola i jeden z db_datareader i db_datawriter. Po pierwsze, użyłem podwyższonego użytkownika w ciągu połączenia i zarejestrowałem pojedynczego użytkownika. Stworzyło to tabele w bazie danych, jak pokazano poniżej.

enter image description here

Następnie, podczas gdy w stanie kontynuować jako admin, zdałem sobie sprawę, że powinniśmy spróbować zakwalifikowane użytkownika i Tada !, to działało idealnie. Gdy stoły już tam były, całe szabelowanie zachowywało się zgodnie z oczekiwaniami.

Aby mieć całkowitą pewność, rzuciłem tabele z bazy danych i tam było - te same problemy, jak wcześniej. Kiedy zmieniłem użytkownika na podwyższonego, tabele zostały przywrócone, co pozwoliło mi wrócić do zdegradowanego.

że próbował również usunięcie tabel, potwierdzając problemy pojawiają się ponownie, a następnie utworzenie tabel ręcznie. To też działa! Więc, zasadniczo, jedynym problemem, który spowodował to wszystko był pierwotny administrator, który nie jest traktowany jako administrator.

To może mieć związek z faktem, że moje konto Azure staje się nieco stare, technologia LiveID używana jest w wersji starszej i nie ma zaktualizowanej wersji bazy danych na Azure (podciągnięcie do wersji 12 przeprowadzono 18 grudnia, więc możliwe, że było to również konieczne, aby działało). Jestem zbyt zmęczony i leniwy, aby to sprawdzić i zdaję sobie sprawę, że nie mam pojęcia, jak uzyskać "stary" typ konta. Poza tym problem będzie się zmniejszał i stopniowo znika, ponieważ stare konta zostaną ostatecznie ulepszone.