2009-12-15 9 views
5

Gibt es einen Unterschied mit Identitätswechsel zwischen einer ASP.Net MVC-Controller-Aktionen vs. ASP.Net Web Form? Wenn ich denselben Code innerhalb desselben Webprojekts verwende, kann ich den Windows-Benutzer erfolgreich imitieren, wenn ich von einem Webformular aus eine Verbindung mit SQL Server herstelle, aber nicht von der Controller-Aktion. Hier ist der Code Probe I von jedem mich entschieden:Identitätswechsel: ASP.Net MVC-Controller-Aktion im Vergleich zu Web Forms

string sqlQuery = @"SELECT Top 10 FullName FROM Customer"; 

// Connect to the database server. You must use Windows Authentication; 
SqlConnection connection = new SqlConnection("Data Source=ServerName;Initial Catalog=DBName;Integrated Security=SSPI"); 
// Create a DataTable to store the results of the query. 
DataTable table = new DataTable(); 

// Create and configure the SQL Data Adapter that will fill the DataTable. 
SqlDataAdapter adapter = new SqlDataAdapter(); 
adapter.SelectCommand = new SqlCommand(sqlQuery, connection); 

// Execute the query by filling the DataTable. 
adapter.Fill(table); 

ich die Httpcontext Benutzer sowohl auf dem Controller überprüft haben und das Web-Formular und sie identisch aussehen. Wenn Sie jedoch eine SQL-Ablaufverfolgung ausführen, wird die Controlleraktion immer als Netzwerkdienst ausgeführt, während das Webformular als Benutzer ausgeführt wird. Jede Klärung, warum diese beiden sich anders verhalten und wie man sich im Rahmen der Kontrolleraktion ausgibt, wäre zu begrüßen.

Antwort

5

try

hinzufügen
<identity impersonate="true"> 

zu

<system.web> 

Teil Ihrer web.config-Datei für Mvc app

+0

danke, das hat bei mir funktioniert! –

Verwandte Themen