Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Noodles
Thema: ASP.NET Identity und eigene Requestvalidierung?
Am im Forum: Web-Technologien

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?

Thema: Dynamische Hintergrundfarbe in rdlc Reports anhand der PageNumber
Am im Forum: Datentechnologien

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

Thema: WCF SecurityMode = Message => Fehler: "Bei der Anmeldung ist ein Fehler aufgetreten"
Am im Forum: Netzwerktechnologien

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:

Fehler
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
Fehler
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:
Fehler
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?

Thema: CMS +Ticktsystem gesucht
Am im Forum: Smalltalk

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

Thema: CMS +Ticktsystem gesucht
Am im Forum: Smalltalk

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

Thema: ReportViewer ohne Assisten anbinden
Am im Forum: Rund um die Programmierung

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

Thema: JavaScript Bibliothek oder ähnliches um Unterschriften in einer Webanwendung zu realisierern?
Am im Forum: Web-Technologien

Vielleicht das hier?

Thema: Brauche user aus code behind in html
Am im Forum: Web-Technologien

Schau mal hier.

Thema: Professionelle Javascript-Entwicklung: Wie?
Am im Forum: Rund um die Programmierung

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

Thema: [erledigt] MVC: Server cannot set status after HTTP headers have been sent
Am im Forum: Web-Technologien

Zitat von Abt
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!
Zitat von Abt
Was das TrySkip da im speziellen tut / soll weiß ich nicht.

Sorry, dann muss sich informieren, bevor man antwortet!
Zitat von Abt
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.

Thema: [erledigt] MVC: Server cannot set status after HTTP headers have been sent
Am im Forum: Web-Technologien

1. Controller
2. NEIN
3. NUR mein Attribut

Thema: [erledigt] MVC: Server cannot set status after HTTP headers have been sent
Am im Forum: Web-Technologien

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);
        }
}

Thema: ASP.NET MVC 4 und JQuery Form Validierung
Am im Forum: Web-Technologien

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

Thema: ASP.NET MVC 4 und JQuery Form Validierung
Am im Forum: Web-Technologien

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

Thema: ASP.NET MVC 4 und JQuery Form Validierung
Am im Forum: Web-Technologien

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.

Thema: ASP.NET MVC 4 und JQuery Form Validierung
Am im Forum: Web-Technologien

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>

Thema: Wie bekomme ich einen Rückgabewert des Post-Aufrufs mittels Javascript(JQuery)?
Am im Forum: Web-Technologien

public JsonResult MyFunction(  )
{
    return Json( new { Message = "Foo" }, JsonRequestBehavior.AllowGet );
}

$.post(action, {}, function (data) {
    alert( data.Message );
    }, "json");

Thema: EmptyResult und FireFox
Am im Forum: Web-Technologien

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

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

Thema: EmptyResult und FireFox
Am im Forum: Web-Technologien

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

Thema: EmptyResult und FireFox
Am im Forum: Web-Technologien

Zitat von Abt
Die Funktion Ajax.BeginForm ist allerdings nicht in jquery.unobtrusive-ajax.js enthalten, sondern in MicrosoftAjax.js
Microsoft hat MicrosoftAjax.js ( das man ohnehin in MVC3 Anwendungen nicht nutzen solle ) und MicrosoftMvcAjax.js als veraltet deklariert und man soll stattdessen jQuery in der Originalfassung verwenden; was durchaus sinn macht.

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

Thema: EmptyResult und FireFox
Am im Forum: Web-Technologien

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.

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

Thema: EmptyResult und FireFox
Am im Forum: Web-Technologien

Hallo,

die Antwort ist leer.
Im XML Tab steht:

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

Güße,
Noodles

Thema: EmptyResult und FireFox
Am im Forum: Web-Technologien

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:
Fehler
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

Thema: MVC - Datenübergabe C# - JavaScript
Am im Forum: Web-Technologien

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>

Thema: ASP.MVC 3 Checkbox auf true validieren
Am im Forum: Web-Technologien

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 ) );

Thema: [gelöst] ADO .NET Entityframework Zugriff auf noch nicht gespeicherte Objekte
Am im Forum: Datentechnologien

Du musst im ObjectStateManager danach suchen.

context.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Added )

Thema: Visual Studio 2010 Service Pack 1 Beta
Am im Forum: Szenenews

Zitat von fod
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

Thema: MVC HttpRequestValidationException Application_Error und customErrors
Am im Forum: Web-Technologien

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

Thema: MVC HttpRequestValidationException Application_Error und customErrors
Am im Forum: Web-Technologien

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

Thema: Silverlight hat bei Microsoft keine große Zukunft mehr, stattdessen setzt man in Redmond auf HTML5
Am im Forum: Szenenews

Zitat
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