2011-06-10 78 views
0

我想在我的asp.net应用程序中使用简短的beaty链接进行referal注册。类似于http://MySite.ru/xbsdakj。我如何实现这个东西?在asp.net中的短链接

+0

什么是推荐注册 - ASP.NET的会员提供商的东西的一部分(即,你想帮助挖掘)或只是你自己的代码?你有一个域和一个允许自定义域的URL shortener服务(例如[bit.ly pro](http://bit.ly/pro/products) - 我敢肯定还有很多其他的)? – Rup 2011-06-10 08:44:27

回答

0

如果你不使用MVC .NET和使用Web表单,你将不得不执行URL重写。请参考http://msdn.microsoft.com/en-us/library/ms972974.aspx

+0

并不完全是一个完整的道理 - 路线确实在3.5+ – 2011-06-10 08:52:59

+0

中可用,您应该将其作为答案发布。 – Tsar 2011-06-10 09:01:03

+0

完成 - 但没有测试过对不起。 – 2011-06-10 13:34:29

0

你瞄准哪个ASP.net的版本提供这个的吗?

版本3.5及以上的,你可以利用低于路由(即使有web表单),你不能:)

假设你可以使用的路线,你可以在全球ASAX以下...

protected void Application_Start(object sender,EventArgs e){RegisterRoutes(RouteTable.Routes); }

public static void RegisterRoutes(RouteCollection routes){routes.Add(new Route(“/ {hash}”,new HashRouteHandler())); }

其中HashRouteHandler就像是在这里

using System.Web.Compilation; 
using System.Web.UI; 
using System.Web; 
using System.Web.Routing; 

public class HashRouteHandler: IRouteHandler 
{ 
    public CustomRouteHandler(string virtualPath) 
    { 
     this.VirtualPath = virtualPath; 
    } 

    public string VirtualPath { get; private set; } 

    public IHttpHandler GetHttpHandler(RequestContext 
      requestContext) 
    { 
     // Lookup URL from hash, e.g. mysite.ru/categories/signup?someinfo=jimmy%20dean 
     string querystring = LookupBasedOnHash(requestContext.RouteData.Values["hash"]); 
     HttpContext.Current.RewritePath(
      string.Concat(
      VirtualPath, 
      queryString)); 

     var page = BuildManager.CreateInstanceFromVirtualPath 
      (querystring , typeof(Page)) as IHttpHandler; 
     return page; 
    } 

答案中描述的处理程序}

0

前提

1)建立一个公共的API密钥。如果你不知道如何阅读这个。 Google Developer Console Create Public API Key 2)在Visual Studio中创建一个新项目并安装以下NuGet包。 Install-Package Google.Apis.Urlshortener.v1

Google URL shortener API是一个公共API,这意味着我们不需要担心身份验证,我们可以使用公共API密钥直接访问它。

UrlshortenerService service = new UrlshortenerService(new BaseClientService.Initializer() 
      { 
       ApiKey = "API KEY from Google developer console", 
       ApplicationName = "Daimto URL shortener Sample", 
      }); 

我们现在有一个我们可以用来访问api的URLshortenerService。 缩短的URL

缩短使用谷歌URL缩短的URL是相当两岸正向我们所说的插入方法。这将为我们创建一个新的缩短的网址。缩短的网址可以在Id属性中找到。

public static string shortenIt(string url) 
     { 
      UrlshortenerService service = new UrlshortenerService(new BaseClientService.Initializer() 
      { 
       ApiKey = "API KEY from Google developer console", 
       ApplicationName = "Daimto URL shortener Sample", 
      }); 

      var m = new Google.Apis.Urlshortener.v1.Data.Url(); 
      m.LongUrl = url; 
      return service.Url.Insert(m).Execute().Id; 
     }