Identitätswechsel: ASP.Net MVC-Controller-Action vs. Web-Formulare
Ist es ein Unterschied, mit dem Identitätswechsel zwischen einer ASP.Net MVC-controller-Aktionen werden im Vergleich zu einem ASP.Net Web-Formular? Mithilfe der exakt gleiche code in der gleichen web-Projekt, ich bin in der Lage, erfolgreich die Identität des Windows-Benutzers bei der Verbindung zum SQL-Server aus einem Web-Formular, nicht aber aus der Controller-Action. Hier ist das Codebeispiel ich die Prüfung aus jedem:
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 habe die HttpContext-Nutzer auf beide controller und dem web-Formular und Sie sehen identisch. Aber bei der Ausführung der SQL-Ablaufverfolgung die controller-Aktion wird immer ausgeführt wird, wenn Netzwerk-Service, während Sie das web-Formular ist ausgeführt, wie der Benutzer. Klärung, warum diese beiden Verhalten sich unterscheiden, und wie die Identität innerhalb der controller-Aktion, würde geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen, hinzufügen
zu
Teil Ihrer Website.config-Datei für die mvc-app
Kann dies helfen:
Identitätswechsel in ASP.NET MVC
Ich sollte auch erwähnen, dass der Identitätswechsel kann einen negativen Einfluss auf Ihre Fähigkeit zu skalieren Sie Ihre app:
http://www.hanselman.com/blog/AvoidUsingImpersonationInASPNET.aspx