Lesender Cookie-Wert: Verwenden des URL-Rewrite-Provider-Moduls - Überprüfung bei System.Web.Configuration.MachineKeySection.EncryptOrDecryptData nicht möglich

Ich muss @ anhängNUTZERNAM mit dem URL-Rewrite-Modul an die URL auf der Serverseite senden.

Warum: Ich habe eine Website site1, wenn sich USER bei site1 anmeldet, wird ihm ein Link zu @ angezei site2., Dieser Link ist eine URL oder ein Bericht. (Tableau). Authentifiziertes Ticket wurde mit @ erstel FormAuthentication in site1. WannBENUTZE klickt auf den Link, authentifiziertNutzernam sollte an site2 übergeben werden.

Ich könnte den Benutzernamen von der Client-Seite anhängen, aber aus Sicherheitsgründen muss ich den Benutzernamen an die URL auf der Server-Seite anhängen, bevor er ausgeführt wird.

So habe ich mich für die Verwendung des URL-Rewrite-Providers entschieden, der das @ aufnimmNutzernam durch Entschlüsseln des Cookie-Werts wie unten gezeigt

     namespace PlatformAnalysisUrlProvider.PlatformAnalysisProvider
      {
       class AnalysisRewriteProvider: IRewriteProvider, IProviderDescriptor
       {
          public void Initialize(IDictionary<string, string> settings,
                                 IRewriteContext rewriteContext)
          {

          }

          public string Rewrite(string value)
          {
             string[] cookievalues = value.Spli('=');
             FormAuthentication ticket = FormAuthentication.Decrypt(cookievalues[1]);

              //Decrypt throws error as shown below
          } 
       }
      }

Cookie Values

        cookievalues [0] =  has the key

        cookievalues [1] =  has the value 

Beispiel

        233AWJDKSHFHFDSHFJKDFDKJFHDKJFKDJFHDHFDHFKJHDFKJHDFJHDKJFHDSKJFHDF

Es ist ein Cookie-Wert. Aber entschlüsseln passiert nicht

Ich erhalte folgenden Fehler

        Unable to validate data.
        at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(
        Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, 
        Int32 length, IVType ivType, Boolean useValidationSymAlgo, 
        Boolean signData)

Hier sind meine Einstellungen in IIS für URL Rewrite

Angeforderte URL: Entspricht den MusternUsing: Regular ExpressionIgnore Case - ÜberprüftConditions - Eingabe: {HTTP_COOKIE} Typ: Entspricht dem Muster Muster:. *Action Type - RewriteRewrite URL -http: //11.155.011.12 {HTTP_URL} & USERNAME = {PlatformAnalysisUrlProvider: {C: 0}}

Ich habe auch MACHINE KEY eingerichtet, wie von diesem Forum vorgeschlagen.

Ich habe diesen Beitrag für die Entwicklung verwiesen

Eines der Stapelüberlauf-Posts deutete darauf hin, dass es sich möglicherweise um ein Firewall- oder Virenschutzproblem handelt. Ich habe jedoch kein Virenschutzprogramm installiert oder keine Firewall aktiviert.

Es hilft wirklich, wenn mich jemand zu @ verweicode sample Hier wird die in IIS und dem URL Rewrite-Anbieter gehostete Website verwendet.

Updating Error Log

MODULE_SET_RESPONSE_ERROR_STATUS Benachrichtigung - "PRE_BEGIN_REQUEST" HttpReason - "URL Rewrite Module Error"

Updating post with Machine Key Info

     <MachineKey Description="AES" validation="SHA1"
      descriptionKey="******"
      validationKey="******" CompatibilityMode="Framework20SP2">

Grund kann @ se - Die Website, auf der Cookies erstellt werden, wird mit .NET Framework 4.5 entwickelt. Der Anbieter, bei dem wir den Cookie lesen, ist Framework 3.5. Kann das die Ursache sein? ODER Benötigen wir eine Konfigurationsdatei für das Provider-Projekt?

Aktualisierun - Ich habe Machine.config einen Maschinenschlüssel hinzugefügt, aber es hat immer noch nicht funktioniert:

Alternative Lösun

Add App.config to class Library

 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
 <appSettings>
 <!-- ... -->
    <add key="SecurityKey" value="somevalue"/>
 <!-- ... -->
 </appSettings>
 </configuration>

Copy config to GAC Folgen Sie diesem Blog -http: //techphile.blogspot.in/2007/02/2.htm

Encrypt den Wert refer here) und erstelle ein benutzerdefiniertes Cookie beim Login

Verwenden Sie die Decrption-Logik innerhalb des benutzerdefinierten Rewrite-Providers

Antworten auf die Frage(2)

Ihre Antwort auf die Frage