2009-11-02 5 views
1

Il y a six mois, j'ai écrit une bibliothèque OpenID. Il essaie de s'authentifier avec un Id ouvert et si cela est vérifié par le fournisseur, il soulève l'événement OpenIdValidationSuccess. J'utilisais des gestionnaires d'événements pour gérer ces événements depuis la page.Gestion d'événements dans Asp.net MVC

OpenMedia.Auth oAuth = new oAuth(); 

Dans mon chargement de la page

protected void Page_Load(object sender, EventArgs e) 

{ 

if (!Page.IsPostBack) 

{ 

// Register event handlers. 

oAuth.OpenIdValidationSuccess += new EventHandler(web_Success); 

oAuth.OpenIdValidationFailure += new EventHandler(web_Failure); 



// Start handling responses. 

oAuth.StartHandleResponse(); 

} 

} 

donc je suis nouveau dans MVC. Je veux utiliser cette bibliothèque de code dans ma nouvelle application MVC. Mais quelle serait la meilleure pratique?

Répondre

2

Il n'y a pas de contrôles serveur et d'événements côté serveur dans l'infrastructure ASP.NET MVC. Vous devez trouver un autre endroit pour mettre des appels à votre bibliothèque. Afin de vous conseiller davantage, vous devez expliquer ce que fait votre bibliothèque et comment elle s'intègre avec le reste de l'application.

0

Je pense, vous devez remplacer l'attribut Autoriser mvc avec votre attribut autorisé personnalisé comme celui-ci:

public class CustomAuthorizeAttribute : AuthorizeAttribute 
    { 
     public override void OnAuthorization(AuthorizationContext filterContext) 
    { 
//  base.OnAuthorization(filterContext); 
//do your own authorize here 


     if (filterContext.Result is HttpUnauthorizedResult && filterContext.HttpContext.Request.IsAjaxRequest()) 
     { 
//do some more logic here 
      // filterContext.HttpContext.Response.StatusCode = 200; 

      //filterContext.Result = new ContentResult() { Content = "404" }; 
     } 
    } 

Et puis sous chaque action dans votre contrôleur, vous avez juste besoin d'ajouter CustomAuthorizeAttribute attribut au lieu de la coutume celui fourni par MVC