05. august 2005 - 14:50Der er
21 kommentarer og 1 løsning
WebService og DbServer i hver sit domæne.
Har lavet en webservice der kan returnere nyheds artikler fra en database. Problemet er bare at når jeg prøver at flytte det ude til en live environment er webserveren og Db serveren ikke i samme domain længere. Så kommer der en access denied fejl når jeg prøver at åbne sqlconnection. Har fundet ude a hvordan jeg kan gøre det indenfor samme domain og hvis det var en almindeligt windows applikation. Men hvordan gøre man det med en web app? WindowsImpersonationContext can jeg ikke få til at fungere da jeg ikke kan kompilere den grundet unsafe code. Kun VS server components er installeret på webserveren.
nej,virker kun indenfor samme domain. Har prøvet men applicationen får ikke adgang til serveren da den køre som domain1\aspnet så bliver nægtet adgang på domain2
domain\ASPNET er bruger identiteten at ASP.net applikationen kører som undtagen hvis identity impersonate = true er sat i web.config har prøvet med sql security. Virker fint fra min egen maskine indenfor domainet men ikke fra webserveren der er udenfor domainet. nej men problemet er at applikationen bliver nægtet adgang til database serveren. sqlConnection.Open() kaster en adgang nægtet/ server ikke fundet exception. hmmm....Kunne måske passe domainnavnet som en del af connection string. Må lige prøve det ad når jeg er på arbejde igen.
ved brug af SQLServer security er domain lige gyldigt, applikationen sender username og password med ved connect, SQLServer validerer den mod databasen, der er ingen som spørger windows, det er en af de ting Microsoft har arvet fra Sybase og som derfor er designet til at virke på Unix
hvis SQLServeren er konfigureret til det (det er den ikke default !) og du bruger den rigtige connection string så skal det virke
ArneV det er åbenbart ikke ligegyldigt da jeg som sagte har prøvet og det fungerer fint så længe at applicationen kører indenfor samme domain. Det er ikke sql adgangen til databasen der bliver nægtet det er selv C# applikationen der ikke får lov til at køre på serveren. Til erikjacobsen:- nej ikke så vidt jeg ved men jeg checker på mandag
Når applikationen kører udenfor den domain i hvilke SQL serveren resider giver den fejl. Fejlen er sql serveren ikke fundet eller access denied. Nårapplikationen kører på en server indenfor samme domain kører den fint med nøjagtigt samme kode. ASP.NET applikationen kører som en local user og er derfor ikke genkendt på en remote server. Man kan køre som en domain user der er genkendt på både webserveren og sql serveren gennem impersonation. Men, det kan ikke lade sig gøre når de ikke er indenfor samme domain da man ikke kan oprette en domain bruger fra den en domain som samme bruger i den anden domain. Håber det gøre tingene lidt mere klart.
hvilket brugernavn ASP.NET kører under og hvorvidt du bruger impersonation betyder kun noget med integrated security - men SQLServer security angives brugernavn i connection string
jeg mener stadigvæk at du: - sikrer dig at SQLServer'en faktisk kører i mixed mode - retter connection string til at bruge SQLServers ecurity og angiver brugernavn og password i den plus: - bruger IP adresse i connection string - angiver sockets fremfor named pipes i connection string - sikrer dig at der ikke er blokeret for port 1433 mellem serverne
Har checket. Med alt sat som Arnev gerne vil se det. Samme fejl. Virker indenfor domænet, fejler udenfor domænet. Begge server er på vores intranet, der er ingen firewall imellem dem.
Server Error in '/Test/XDomainTest' Application. --------------------------------------------------------------------------------
SQL Server does not exist or access denied. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: SQL Server does not exist or access denied.
Source Error:
Line 31: try Line 32: { Line 33: myConn.Open(); Line 34: string myText = myComm.ExecuteReader().GetString(0); Line 35: Label1.Text = myText;
Gør ingen forskel. Trusted connection er false by default tror jeg nok. Men din udgave a connection string giver samme fejl. Jeg har fået min conn string ved at smide en ny connection ind vha VS og kopiere strengen derfra efter jeg har testede connection. Connection fungerer også X-domain men fejler når den excekveres indenfor koden.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.