2010-05-20 3 views
0

J'utilise OAuth (linq2twitter et DotNetOpenAuth) pour permettre à un utilisateur de poster des commentaires via son compte Twitter. Donc, quand vous faites l'autorisation, Twitter fait un rappel, de sorte que linq2twitter le fait pour définir le rappel à la page qui a fait le req. Donc, si le req vient de blah.com \ twit, il redirigera vers blah.com \ twit. Cela me conduit à avoir le code comme ceci:Asp.net mvc 2 et twitter authenticaton

public ActionResult Twit(){ 
     var qString = Request.QueryString; 
     if (qString.Count <= 0){ 
     //do authorization 
     } 
     else{ 
     //do authentication 
     } 
} 

Je voudrais partager à cette (apparemment ces deux appels sont effectués via GET):

public ActionResult Twit(){} 
public ActionResult Twit(string token1, string token2){} 

Quand j'ai ce moment je obtenir l'écran jaune .net se plaindre des méthodes d'action ambiguës. Comment acheminer ceci?

Répondre

1

Vous pouvez utiliser AcceptVerbs comme ça

public ActionResult Twit(){} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Twit(string token1, string token2){} 

Cela rendra ASP.NET MVC 2 route vers la deuxième méthode d'action lorsque le rappel est affiché.

+0

Il semble que le rappel soit fait via un Get, donc les deux méthodes doivent être un get. – arinte

+0

Droite. Il semble que je n'ai pas bien compris la question. Vous pourriez essayer ceci, alors: http://blog.abodit.com/2010/02/asp-net-mvc-ambiguous-match/ –