Avatar billede jtbroad Nybegynder
05. august 2005 - 14:50 Der 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.
Avatar billede arne_v Ekspert
05. august 2005 - 17:18 #1
Var det en mulighed at enable SQLServer security og så logge på med
brugernavn & password i connection string ?
Avatar billede jtbroad Nybegynder
06. august 2005 - 20:01 #2
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
Avatar billede arne_v Ekspert
06. august 2005 - 20:04 #3
når du bruger SQLServer security så er den totalt ligeglad med domain, så
det lyder ikke som om at du har prøvet det

(domain1\aspnet er også ret åbenlyst et windows brugernavn og ikke et sqlserver
brugernavn)
Avatar billede jtbroad Nybegynder
06. august 2005 - 20:16 #4
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.
Avatar billede jtbroad Nybegynder
06. august 2005 - 20:18 #5
Det er ikke uden grund jeg byder 200point for dette spørgsmål.
Vil gerne have et svar fra en der kender en metode de ved med sikkerhed fungerer.
Avatar billede erikjacobsen Ekspert
06. august 2005 - 20:19 #6
Har du en router eller firewall imellem, som kan nægte adgang til den relevante port?
Avatar billede arne_v Ekspert
06. august 2005 - 20:22 #7
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
Avatar billede jtbroad Nybegynder
07. august 2005 - 17:01 #8
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
Avatar billede arne_v Ekspert
07. august 2005 - 17:47 #9
Nu er jeg forvirret.

I dit spørgsmål skrev du "Så kommer der en access denied fejl når jeg prøver at
åbne sqlconnection."

Nu skriver du "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."
Avatar billede jtbroad Nybegynder
08. august 2005 - 08:57 #10
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.
Avatar billede arne_v Ekspert
08. august 2005 - 09:16 #11
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
Avatar billede jtbroad Nybegynder
08. august 2005 - 09:31 #12
O.k. men der kan gå lidt tid før jeg får checket. Vender frygeltigt tilbage.
Avatar billede jtbroad Nybegynder
08. august 2005 - 13:54 #13
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.
Avatar billede arne_v Ekspert
08. august 2005 - 14:30 #14
må vi se connection string (med password x'et ud) og den exception du får ?
Avatar billede jtbroad Nybegynder
08. august 2005 - 14:47 #15
string strConn = "user id=XXXX;data source=webserver;persist security info=true;initial catalog=AdwizaNews; password=XXXX";

som jeg siger, virker fint indenfor domænet.

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;


Source File: x:\xxxxxxxx\xxxxxxx\test\xdomaintest\webform1.aspx.cs    Line: 33

Stack Trace:


[SqlException: SQL Server does not exist or access denied.]
  System.Data.SqlClient.ConnectionPool.GetConnection(Boolean& isInTransaction)
  System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction)
  System.Data.SqlClient.SqlConnection.Open()
  XDomainTest.WebForm1.Page_Load(Object sender, EventArgs e) in x:\xxxxxx\xxxxxx\test\xdomaintest\webform1.aspx.cs:33
  System.Web.UI.Control.OnLoad(EventArgs e)
  System.Web.UI.Control.LoadRecursive()
  System.Web.UI.Page.ProcessRequestMain()
Avatar billede arne_v Ekspert
08. august 2005 - 14:55 #16
jeg synes ikke rigtigt at den connection string angiver noget om SQLServer
security

jeg er ikke engang sikker på at den bruger TCP/IP

jeg forestiller mig noget i retning af:

SqlConnection con = new SqlConnection("Server=192.168.1.130;Network Library=DBMSSOCN;Trusted_Connection=False;Database=Test;User ID=sa;Password=");
Avatar billede jtbroad Nybegynder
08. august 2005 - 15:15 #17
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.
Avatar billede jtbroad Nybegynder
15. august 2005 - 13:29 #18
tæt på Arne, skulle også angive portnummer efter servernavn.
stik et svar hvis du vil have points.

SERVER=myserver,2433;
Avatar billede arne_v Ekspert
15. august 2005 - 13:54 #19
svar
Avatar billede arne_v Ekspert
15. august 2005 - 13:54 #20
port er kun nødvendigt hvis man bruger en ikke standard port (forskellig fra 1433)
Avatar billede jtbroad Nybegynder
15. august 2005 - 13:59 #21
opdatering til sp4 havde skiftede portnummer
Avatar billede arne_v Ekspert
29. september 2005 - 21:04 #22
(så mangler du bare at acceptere svaret)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester