为每个注册到您网站的用户生成唯一的网址

时间:2013-09-26 09:09:26

标签: c# asp.net url-routing

是的,所以我正在开发一个网站(虽然只是一个初学者)。我一直坚持为每个在我网站上注册的用户生成一个唯一网址的问题。 现在说我的网站名为www.mydomainname.com。截至目前,无论用户名是www.mydomainname.com/myaccount.aspx,每个用户都有一个具有相同网址的个人资料。 这是因为我通过sql查询根据用户名为每个用户提取数据。现在我想删除myaccount.aspx并将注册用户的用户名添加到url。这也有助于访问您个人资料的其他用户,就像youtube或facebook一样。 路由可能对我有帮助(但不确定),但任何想法或示例代码甚至淋浴如何实现这一点的知识都会有很大的帮助。

2 个答案:

答案 0 :(得分:2)

如果您使用的是asp.net成员资格提供程序,则可以在查询字符串中包含用户ID,用户ID是唯一的GUID值。它会是这样的:

Guid userId = (Guid)Membership.GetUser().ProviderUserKey;
string url = string.Format("www.mydomainname.com/myaccount.aspx?user={0}", userId.ToString());

例如,这会给出网址:

  

www.mydomainname.com/myaccount.aspx?user=0CCAFADF-0BAE-4985-8073-1639985740BE

通过此URL,您可以使用以下内容获取user查询字符串值

string guid = Request.QueryString.Get("user");

答案 1 :(得分:0)

您还可以按照您提到的选项之一实施路由:

 void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("MyAccount","Account/{username}", "~/myaccount.aspx");
    }