Laden...

Forenbeiträge von Noodles Ingesamt 4.644 Beiträge

24.07.2015 - 09:47 Uhr

Hallo,

wie validiert ASP.NET Identity (OAuthAuthorizationServerProvider) die Requests?
Ich habe folgende Situation:

public partial class Startup {
    public void Configuration(IAppBuilder app) {
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        var authServerOptions = new OAuthAuthorizationServerOptions() {
            AllowInsecureHttp = true,
            TokenEndpointPath = new PathString("/token"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
            Provider = new SimpleOAuthProvider()
        };

        app.UseOAuthAuthorizationServer(authServerOptions);
        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
    }
}

Der Provider:

public class SimpleOAuthProvider : OAuthAuthorizationServerProvider {
    public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context) {
          context.Validated();
          return Task.FromResult<object>(null);
    }

    public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) {
        var allowedOrigin = "*";

        context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });
            
        var identity = new ClaimsIdentity(context.Options.AuthenticationType);
        identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
        // ...

        var props = new AuthenticationProperties(new Dictionary<string, string>();
        var ticket = new AuthenticationTicket(identity, props);
        context.Validated(ticket);            
    }
}

Wenn ich nun per Postman einen Request (mit einem gültigen Token) absetze, dann hätte ich erwartet, dass ich nun in ValidateClientAuthentication ankomme. Dem ist aber nicht so.
Die tokenbasierte Authentifizierung an sich funktioniert, wenn ich das Token entferne erhalte ich keinen Zugriff, auch wenn ich es verändere werde ich ausgesperrt.
Wo muss ich dann nun eingreifen, wenn ich nun aber noch eigene Validierungen per Request ausführen will?

29.05.2013 - 13:13 Uhr

Hallo,

ich möchte in einem Report ein Hintergrundbild ab Seite 2 anzeigen. Dazu habe ich folgenden Code in den Report eingefügt:

Public Function IsFirstPage()
 Return Me.Report.Globals!PageNumber = 1
End Function

Um Code zu sparen, zeige ich das Vorgehen an der Hintergrundfarbe (was auch nicht funktioniert):

Expression der BackgroundColor Eigenschaft des Report-Body:

=IIF(Code.IsFirstPage(), "Red", "Green")

Lasse ich mir den Wert von Code.IsFirstPage() auf der jeweiligen Seite ausgeben, steht auf Seite 1 "True", ansonsten "False".

Hat jemand eine Idee warum das Setzen des Hintergrundes nicht funktioniert? Wird die Hintergrundfarbe nur einmal gerendert und gilt dann für alle Seiten?
Alternativ kann ich natürlich auf Seite 1 ein Panel einbauen und mit der Hintergrundfarbe weiß belegen, dass würde das Problem lösen.
Dennoch interessiert mich ob der Report dieses dynamische Verhalten nicht kann?

Viele Grüße

12.10.2012 - 10:16 Uhr

Hallo,

ich habe folgendes Problem. Auf dem Server A liegt ein WCF Service, welcher Daten an einen anderen WCF Service auf Server B weiterreicht. Die Daten die zu Server A kommen, sind auf Nachrichtenebene verschlüsselt.
Dazu habe ich mit dem Windows Zertifizierungsdienst eine eigen CA und die entsprechenden Zertifikate ausgestellt und eingespielt. Auch hat der ApplicationPool Account Leserechte auf den Private Key.
Im Eventlog treten allerdings bei jeder Verbindung folgende Fehler auf:

Fehlermeldung:
Fehler beim Anmelden eines Kontos.

Antragsteller:
Sicherheits-ID: NULL SID
Kontoname: -
Kontodomäne: -
Anmelde-ID: 0x0

Anmeldetyp: 3

Konto, für das die Anmeldung fehlgeschlagen ist:
Sicherheits-ID: NULL SID
Kontoname:
Kontodomäne:

Fehlerinformationen:
Fehlerursache: Bei der Anmeldung ist ein Fehler aufgetreten.
Status: 0xc000006d
Unterstatus:: 0x80090325

Prozessinformationen:
Aufrufprozess-ID: 0x0
Aufrufprozessname: -

Netzwerkinformationen:
Arbeitsstationsname: -
Quellnetzwerkadresse: -
Quellport: -

Detaillierte Authentifizierungsinformationen:
Anmeldeprozess: Schannel
Authentifizierungspaket: Microsoft Unified Security Protocol Provider
Übertragene Dienste: -
Paketname (nur NTLM): -
Schlüssellänge: 0

und

Fehlermeldung:
Fehler beim Anmelden eines Kontos.

Antragsteller:
Sicherheits-ID: SYSTEM
Kontoname: MyServer$
Kontodomäne: MyDomain
Anmelde-ID: 0x3e7

Anmeldetyp: 3

Konto, für das die Anmeldung fehlgeschlagen ist:
Sicherheits-ID: NULL SID
Kontoname:
Kontodomäne:

Fehlerinformationen:
Fehlerursache: Unbekannter Benutzername oder ungültiges Kennwort.
Status: 0xc000006d
Unterstatus:: 0xc0000064

Prozessinformationen:
Aufrufprozess-ID: 0x1e8
Aufrufprozessname: C:\Windows\System32\lsass.exe

Netzwerkinformationen:
Arbeitsstationsname: MyServer
Quellnetzwerkadresse: -
Quellport: -

Wenn ich den WCFTrace aktiviere, erhalte ich noch folgendes:> Fehlermeldung:

Der Konfigurationsevaluierungskontext wurde nicht gefunden

Die Daten kommen trotzdem alle da an wo sie hinsollen, also in der Datenbank. Aber hat jemand eine Idee was diese Fehler sind? Hat er ein Problem mit den Zertifikaten?

06.07.2012 - 14:50 Uhr

Hat evtl. jemand Erfahrung mit http://orchardproject.net/?

06.07.2012 - 12:23 Uhr

Hallo,

ich suche ein CMS was ein Ticktsystem für den Support mitbringt oder als Plugin nachinstalliert werden kann. Ach ja, es macht nichts, wenn es für die kommerzielle Nutzung frei ist bzw. wenig kostet. Gern hätte ich ein .NET basiertes System.

Mit fiel jetzt spontan DotNetNuke (frei für kommerzielle Nutzung, oder?) ein, in Verbindung mit oldturtle.net.

Hat jemand Erfahrungen damit oder kann Alternativen nennen?

Viele Grüße

11.06.2012 - 08:48 Uhr

Du kannst beliebige Datenquellen an einen Report übergeben. Hier mal ein Beispiel eines Client-Reports:


var dataSource = new ReportDataSource("dataSet", myCustomObjectList);
var localReport = new LocalReport();
localReport.DataSources.Clear();
localReport.DataSources.Add(dataSource);

Wenn Du den Report schon an den ReportViewer übergeben hast, musst Du ihn nicht instanziieren. Du erhälst ihn dann mit:

myReportViewer.LocalReport
08.05.2012 - 08:52 Uhr

Schau mal hier.

09.02.2012 - 10:26 Uhr

Vielleicht für den einen oder anderen interessant.
http://projects.nikhilk.net/ScriptSharp

09.02.2012 - 09:19 Uhr

Das ist nun irgendwie ein Widerspruch.
Du nutzt keine anderen Attribute und nutzt auch NUR dieses - nichts MVC eigenes.

Das hast Du nicht gefragt und ich nicht behauptet!

Was das TrySkip da im speziellen tut / soll weiß ich nicht.

Sorry, dann muss sich informieren, bevor man antwortet!

Zudem sollte der Fehler Code eher 401(Unauthorized) sein und nicht 403 (Forbidden), oder?

Nein muss er nicht.

An alle anderen.
Nach ewigen versuchen habe ich dann einen "wirklich" guten Tip im Internet gefunden, mit welchem das ganze jetzt augenscheinlich funktioniert.
Folgende Zeile muss im if-Zweig ergänzt werden:

filterContext.Result = new EmptyResult();

Warum es in einer anderen Anwendung funktioniert hat und meiner aktuellen nicht, muss ich jedoch noch ergründen.

09.02.2012 - 09:02 Uhr
  1. Controller
  2. NEIN
  3. NUR mein Attribut
09.02.2012 - 08:49 Uhr

Hallo,

ich habe ein Filter der sich um ein Weiterleiten auf die Loginseite, im Falle eines Timeouts bei Ajax Aufrufen, kümmern soll.
Leider kommt ständig die Fehlermeldung 'Server cannot set status after HTTP headers have been sent'. Ich benutze FormsAuthentication.

Hat jemand eine Idee, an was es liegen könnte? Ich hatte den gleichen Code in einer anderen Anwendung laufen, allerdings mit einem MembershipProvider. Es ist der einzige Unterschied.

public class AjaxAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Request.IsAjaxRequest())
        {
                filterContext.HttpContext.Response.StatusCode = 403;
                filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
                filterContext.HttpContext.Response.End();
        }
        else
        {
            base.HandleUnauthorizedRequest(filterContext);
        }
}
06.02.2012 - 10:09 Uhr

Auch das ändert nichts... Sowas teste ich dann doch von allein. Danke trotzdem...

06.02.2012 - 10:06 Uhr

Wie gesagt, Firbug meldet nix!
Diese Methode kommt auch nicht von MS: http://docs.jquery.com/Plugins/Validation/valid
Trotzdem Danke...

06.02.2012 - 09:51 Uhr

Funktioniert nicht heißt, dass die Form immer valid ist, auch wenn ich nichts ausfülle. Firebug sagt gar nichts, keine Meldung. Im MVC 3 wird die Form richtig validiert, nämlich als invalid, da ja nichts aufgefüllt ist, somit wird ein unnötiger Post verhindert.

06.02.2012 - 09:42 Uhr

Hallo,

ich möchte ein Formular clientseitig validieren und nur im gültigen Fall ein Post zum Server erlauben. Dieser Code funktioniert in einem MVC 3 Projekt, allerdings nicht mit MVC 4. Hat einer eine Idee und Kenntnisse darüber, dass evtl. noch ein Bug in der MVC 4 Preview vorliegt?

Model:

public class ContactModel
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
}

Javascript:


<script type="text/javascript">
    $(function () {
        $('form').submit(function (e) {
            e.preventDefault();
            if($('#myform').valid() ) {
               alert('valid');
            }
            else {
                alert('invalid');
            }
        });
});
</script>

Form:

<form action="@Url.Action("MyAction")" method="post" id="myform">
    @Html.ValidationSummary(false, "Fehler...")
    <p>
        <span class="label">Vorname:</span>
        <span>
            @Html.TextBoxFor(m => m.FirstName)
            @Html.ValidationMessageFor(m => m.FirstName)
        </span>
    </p>
    <p>
        <span class="label">Nachname:</span>
        <span>
            @Html.TextBoxFor(m => m.LastName)
            @Html.ValidationMessageFor(m => m.LastName)
        </span>
    </p>
</form>
15.06.2011 - 07:06 Uhr
public JsonResult MyFunction(  )
{
    return Json( new { Message = "Foo" }, JsonRequestBehavior.AllowGet );
}
$.post(action, {}, function (data) {
    alert( data.Message );
    }, "json");
13.04.2011 - 11:17 Uhr

Firefox kann anscheinend keine komplett leeren Results handeln, im Gegensatz zu Chrome und IE.

Lösung:
anstatt EmptyResult, return Json( string.Empty ) verwenden.

13.04.2011 - 08:14 Uhr

Sorry, aber ich wollte keine Belehrung welches API gut oder böse ist.
Hat jemand Ideen die zur Lösung mit Ajax.BeginForm beitragen?

12.04.2011 - 15:39 Uhr

Die Funktion :::

MicrosoftAjax.js ist das Erste (alle anderen MicrosoftAjax files ebenfalls) was ich gelöscht habe, nach dem ich das Projekt angelegt habe. Somit sollte die Aussage nicht unbedingt Bestand haben.

http://yobriefcase.posterous.com/unobtrusive-javascript-in-mvc3

12.04.2011 - 15:16 Uhr

Hallo,

ich nutze nicht das AjaxToolkit.
Ich verwende keinen Minifier.
Ich verwende MVC 3 mit unobtrusive JavaScript.

Also im normalen jQuery kommt der Fehler Firebug nicht. Alllerdings steht im XML-Tab dasselbe.

XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal:{e19e4977-8a65-4a0f-9a72-8dac6ffa1711} Zeile Nr. 1, Spalte 1:

12.04.2011 - 14:51 Uhr

Hallo,

die Antwort ist leer.
Im XML Tab steht:

XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal:{e19e4977-8a65-4a0f-9a72-8dac6ffa1711} Zeile Nr. 1, Spalte 1:

Güße,
Noodles

12.04.2011 - 10:48 Uhr

Hallo,

gegeben sei folgender Code:

[HttpPost]
public ActionResult Search()
{
    return new EmptyResult();
}
@using( Ajax.BeginForm( "Search", new AjaxOptions() { UpdateTargetId = "result" } ) )
{
    <input type="submit" value="Suchen" />
}
<div id="result">
</div>

Dieser Code wird in Chrome und IE problemlos ausgeführt. FireFox hingegen zeigt im FireBug den folgenden Fehler:> Fehlermeldung:

Node cannot be inserted at the specified point in the hierarchy" code: "3
(function(a,b){function cg(a){return d...a:a+"px")}}),a.jQuery=a.$=d})(window);

kennt jemand dieses Problem oder hat eine Erklärung dafür?

Grüße
Noodles

11.04.2011 - 07:10 Uhr

ViewData geht so, aber für die Session musst musst Du ein Ajax-Request machen.

public ActionResult Index()
{
    ViewBag.Message = "Welcome to ASP.NET MVC!";
    return View();
}
<script type="text/javascript">
    $(function () {
        alert( '@ViewBag.Message' );
    });
</script>
24.03.2011 - 07:28 Uhr

Clientseitig musst Du nicht viel machen.
Beispiel:

public sealed class BooleanRequiredAttribute : ValidationAttribute
{
    public override bool IsValid( object value )
    {
        return value != null && ( bool )value;
    }
}

public class BooleanRequiredAttributeValidator : DataAnnotationsModelValidator<BooleanRequiredAttribute>
{
    private string _message;

    public BooleanRequiredAttributeValidator( ModelMetadata metadata, ControllerContext context, BooleanRequiredAttribute attribute ) : base( metadata, context, attribute )
    {
        this._message = attribute.ErrorMessage;
    }

    public override IEnumerable<ModelValidationResult> Validate( object container )
    {
        bool isValid = false;
        var value = Metadata.Model;
        if( Metadata.Model != null )
        {
            isValid = ( bool ) value;
        }
        else
        {
            isValid = true;
        }

        if( !isValid )
        {
            yield return new ModelValidationResult { Message = ErrorMessage };
        }
    }

    public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
    {
         return new ModelClientValidationRule[] { new ModelClientValidationRule() { ValidationType = "brequired", ErrorMessage = this.ErrorMessage } };
    }
}

JS:

jQuery.validator.unobtrusive.adapters.add("brequired", function (options) {
    if (options.element.tagName.toUpperCase() == "INPUT" && options.element.type.toUpperCase() == "CHECKBOX") {
        options.rules["required"] = true;
        if (options.message) {
            options.messages["required"] = options.message;
        }
    }
});

Zum Schluss noch in der Global.asax im Application_Start Event registrieren.

DataAnnotationsModelValidatorProvider.RegisterAdapter( typeof( BooleanRequiredAttribute ), typeof( BooleanRequiredAttributeValidator ) );
12.03.2011 - 11:37 Uhr

Du musst im ObjectStateManager danach suchen.

context.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Added )
11.03.2011 - 12:02 Uhr

Moin,

ich hab, bis auf den subjektiven Eindruck das VS langsamer ist, keine Probleme nach dem Update auf SP1 festgestellt.

Ich schon. Die Intellisense des SQL Server 2008 R2 funktioniert bei mir nicht mehr.
SSMS 2008 R2 is losing Intellisense after installing Visual Studio 2010 SP1

10.02.2011 - 20:40 Uhr

Hallo,

hab es gesehen. Dann ist durch die Globalen Filter das Application_Error Event wohl unnötig. Der "richtigere" Weg scheint dann wohl ein eigenes HandleErrorAttribute zu sein, in dem ich die HttpRequestValidationException behandle.
Also benötigt man das Application_Error Event nicht mehr?

Grüße

10.02.2011 - 15:04 Uhr

Hallo,

ich habe eine MVC 3 Anwendung und möchte die HttpRequestValidationException im Application_Error fangen. Dies funktioniert auch, so lange customErrors auf Off steht. Schalte ich customErrors auf On, komme ich bei dieser Exception nicht mehr im Application_Error an. Es scheint also das die Fehlerbehandlung hinter customErrors eher greift.
Ich hab das jetzt mit einer normalen ASP.NET 4.0 Anwendung getestet und da funktioniert es genau so, wie ich es erwarte. Ich kommt als erstes in Application_Error an.

Hat jemand eine Idee?

Viele Grüße
Noodles

01.11.2010 - 09:29 Uhr

Silverlight hat bei Microsoft keine große Zukunft mehr, stattdessen setzt man in Redmond auf HTML5. Zwar wird Silverlight 5 wohl noch erscheinen, in Microsofts Planungen spielt die einst als Flash-Konkurrent gestartete Technik aber offenbar keine große Rolle mehr.

HTML5 statt Silverlight

06.10.2010 - 13:20 Uhr

Schau mal hier unter "Non-Sequential Indices".

17.09.2010 - 09:43 Uhr

Hallo,

kann mir jemand sagen, warum in dem folgenden Beispiel das SelfClosing ignoriert wird?

<script type="text/javascript">
        $(function () {
            $('#test').after('<input type="hidden" value="1" />');
        });
</script>
    
<div id="test">
</div>

Ergebnis:

<input type="hidden" value="1">
02.09.2010 - 14:21 Uhr

Hallo,

ausgehend von diesem Post, verwende ich EditorForModel um per UIHint mein View für ein Objekt darzustellen.

Model:

public class MedicationViewModel
{
    public MedicationViewModel()
    {
        this.MedicationId = 1;
        this.Agent = new AgentSearchViewModel() { AutoCompleteAgent = "Irgendetwas" };
    }

    public int MedicationId { get; set; }
        
    [UIHint( "Agent" )]
    public AgentSearchViewModel Agent { get; set; }
}

public class EditFormDropDownModelConverter : TypeConverter
{
    public override bool CanConvertFrom( ITypeDescriptorContext context, Type sourceType )
    {
        return ( sourceType == typeof( string ) ) ? true : base.CanConvertFrom( context, sourceType );
    }
}

[TypeConverter( typeof( EditFormDropDownModelConverter ) )]
public class AgentSearchViewModel
{
    public AgentSearchViewModel() { }

    public string AutoCompleteAgent { get; set; }
}

View:

<% Html.BeginForm("_Update", "Agent"); %>
    <%= Html.EditorForModel() %>
    <input type="submit" value="save" />
<% Html.EndForm(); %>

Update:

public ActionResult _Update( MedicationViewModel model )
{
    return View("List", model);
}

Agent wird leider nicht aktualisiert, was an dem TypeConverterAttribute liegt. Hat jemand eine Idee warum?
Entferne ich das Attribut und ändere den View folgendermaßen ab, funktioniert alles besten (Leider kann ich den View aber nicht so ändern).

<% Html.BeginForm("_Update", "Agent"); %>
    <%= Html.TextBoxFor( m => m.MedicationId ) %>
    <%= Html.TextBoxFor( m => m.Agent.AutoCompleteAgent ) %>
    <input type="submit" value="save" />
<% Html.EndForm(); %>

Gruß Noodles

01.09.2010 - 07:23 Uhr

Hallo,

die Validierung ist in ASP.NET MVC automatisiert. Angezeigt werden diese dann durch entsprechende ValidationControls.

DisplayName ist der Anzeigename für die entsprechende Eigenschaft.
ASP.NET MVC:
<%: Html.LabelFor(model => model.Date) %>
Hierbei wird der Wert aus dem DisplayNameAttribute zur Anzeige verwendet.

Bei den Metadaten ist der Datentyp völlig egal, es geht nur um die Name der Eigenschaft. Man kann natürlich auch die wirklichen Datentypen der Eigenschaft verwenden.

29.08.2010 - 20:38 Uhr

Hier findest Du eine Erklärung für 1 und 3 und hier etwas zu Punkt 2.

23.07.2010 - 07:04 Uhr

Mit einer Metadaten Klasse.
Beispiel:


[MetadataType( typeof( WeightMetadata ) )]
public partial class Weight
{
}

public class WeightMetadata
{
    [DisplayName( "Datum" )]
    [Required( ErrorMessage = "Sie müssen ein Datum angeben." )]
    [DataType( DataType.Date )]
    public object Date { get; set; }
        
    [DisplayName( "Gewicht in kg" )]
    [Required( ErrorMessage = "Sie müssen ein Gewicht angeben." )]
    [Range( 1, 500, ErrorMessage = "Es sind nur Werte zwischen 1 und 500 erlaubt." )]
    public object Value { get; set; }
}

21.07.2010 - 07:44 Uhr

Hi !
Ist es korrekt, dass man als kleine Einschränkung nun nicht mehr einfach

ctx.AddToUsers(user);  

sondern

ctx.Users.AddObject(user);  

machen muss? Die Methoden werden leider nicht mehr generiert.

Korrekt.

Kann man das vorherige Auslesen der zu updatenden Person nicht irgendwie in eine Extension-Method auslagern? Vielleicht hast du ja einen Tipp für mich.

Ich habe in meinem Repository eine Methode GetPerson, welche ich dann bemühe mir die Person zu liefern. So muss ich es nur einmal schreiben.

15.07.2010 - 07:22 Uhr

Das POCO ist das Objekt welches aus dem EF generiert wurde. Es gibt also nur eine Company Klasse in meine Anwendung.

14.07.2010 - 09:26 Uhr

In einem Repository findet das bei mir statt.

Zum Beispiel:

public Company GetCompanyByName( string name )
{
    return this._context.Companies.FirstOrDefault( c => c.Name.Equals( name, StringComparison.InvariantCultureIgnoreCase ) );
}
14.07.2010 - 09:22 Uhr

Hallo,

ich habe eine Action in welcher ich ein Redirect zu einer anderen Action mache. Dabei setzte ich einen Eintrag im TempData Dictionary, welcher aber nach dem Redirect null ist. Kann mir jemand sagen warum, denn ein TempData Eintrag ist ja dafür da, einen Redirect "zu überleben".

Code:

public ActionResult LogOn()
{
    string message = TempData["message"]; // ist immer null
    return View();
}

[Authorize]
[HttpPost]
public ActionResult ChangePassword( ChangePasswordModel model )
{
    if( ModelState.IsValid )
    {
        if( MembershipService.ChangePassword( User.Identity.Name, model.OldPassword, model.NewPassword ) )
        {
            TempData["message"] = "Meine Nachricht.";
            return RedirectToAction( "LogOn" );
        }
    }
    [...]
}

Edit:
Es wurde zwischen durch noch ein:
Session.Clear();
Session.Abandon();
aufgerufen. Logisch, dass dan TempData null ist! Muss an der Wärme liegen... 😉

13.07.2010 - 10:19 Uhr

Ich habe die POCO Objekte in einer eigenen Assembly und diese referenziere ich dann überall. Der Context liegt nur in der Assembly für den Datenzugriff und ist im Designer auf internal gesetzt, so kann niemend direkt auf den Context zugreifen.

13.07.2010 - 08:57 Uhr

Es sind ja nicht "nochmal neue Objekte", es bleiben die vom EF generierten Objekte, nur halt als POCO.
Ich verwende in meinem MVC Projekt ViewModels für die UI Schicht.

13.07.2010 - 07:18 Uhr

Lasse Dir doch aus Deinem EF POCO Objekte erstellen. Die kannst Du dann in eine eigene Assembly packen und den Context belässt Du in der Datenschicht.

ADO.NET C# POCO Entity Generator

29.06.2010 - 11:11 Uhr

Du kannst in den Events Selecting, Inserting und Updating auf die Parameter zugreifen.

29.06.2010 - 07:04 Uhr

immerhin hats die letzten 100 Jahre auch ohne geklappt.

Und der Fußball war die letzten 100 Jahre schon so schnell, wie er es jetzt ist? Oder besser, war das finanzielle Interesse, und somit die Möglichkeit von absichtlichen Fehlentscheidungen, die letzten 100 Jahre schon so hoch wie es jetzt ist?

28.06.2010 - 12:50 Uhr

Aber genau DAS will ich nicht missen. Denn das gibt Stoff zum diskutieren, lässt Emotionen verstärkt entstehen und gibt dem Sport eine gewisse Eigenwilligkeit.

Das ist kein wirkliches Argument, denn dann müsste es ja in anderen Sportarten ( Eishockey, Tennis, ... ) wenig Emotionen und wenig zu diskutieren geben.
So eine krasse Fehlentscheidung wie gegen England und gegen Mexico darf einfach nicht passieren.

England hat aber nicht wegen dem Schiedsrichter verloren, was auch Steven Gerrad zugegeben hat.