Toon posts:

[asp.net]IHttpHandler toevoegen in de codebehind

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet dat het slechte code kan opleveren, maar is het ook mogelijk om ipv
<httpHandlers>
<add verb="GET" path="Movies.ashx" type="ChargeableContent.ContentProvider, ChargeableContent"/>
</httpHandlers>
In de code deze handler kan toevoegen.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20:39

TeeDee

CQB 241

Vziw niet. Dat is imo ook logisch. Een http-handler behandelt het verkeer in feite voordat het bij je code-behind komt.

En anders kan je het altijd eens gewoon proberen.

Waarom wil je dit als ik vragen mag?

[ Voor 28% gewijzigd door TeeDee op 17-11-2006 13:28 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Ik heb een handler die aan de hand van de useragent van de mobiele telefoon en het contentid een filmpje teruggeeft. Deze klasse wordt misschien ook gebruikt in een systeem waar ze geen controls enzo egbruiken, dus ik moet een urlteruggeven(als betaald is het filmpje, anders betaalpagina). Om het dynamisch te houden d8 ik eerst ik zoek de eerste entry uit de handlers. Maar dat is foutgevoeliger.

dus
public string GetContentPage(uint nContentID, string nClientID)
{
of foutpagina
of Handler
}

in de pagina
ContentProvider cp = new COntentProvider();
url = cp.GetCOntentPage(id,id);

[ Voor 23% gewijzigd door Verwijderd op 17-11-2006 13:35 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het idee van .ashx files is toch juist dat je ze niet meer toe hoeft te voegen via de web.config? Mischien als je verteld wat je doel precies is dat we je beter kunnen helpen.

uit je bovenstaande beschrijving snap ik eigenlijk nog steeds niet waarom je dynamisch handlers toe wilt voegen.

In je handler kun je toch gewoon alles controleren wat je wilt. Je handler kan de daadwerkelijke afhandeling daarna eventueel doorgeven aan een ander object.

Dat kan toch gewoon met een ashx
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<% @ webhandler language="C#" class="ContentHandler" %> 

using System; 
using System.Web; 

public class ContentHandler : IHttpHandler 
{ 
   public bool IsReusable 
   { get { return true; } } 
   public void ProcessRequest(HttpContext ctx) 
   {
        string userId = ctx.Request[ "UserId" ];
        string contentId = ctx.Request[ "ContentId"];
        ContentProvider cp = new ContentProvider();
        if( cp.HasRightForContent( userId, contentId ) )
        {
            cp.StreamContent(ctx.Response);
        }
        else
        {
            ctx.Response.Redirect( "BetaalUrl.htm" );
        }
   } 
}

[ Voor 87% gewijzigd door Woy op 17-11-2006 13:42 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
tnx, je hebt gelijk