2012-02-06 42 views
3

私はこのURLにユーザー名を追加する方法(URL書き換え)

http://myweb.com/username/255 
http://myweb.com/username/settings 

のように私はASP.Net書き換えモジュールを使用しています、成功のサインアップ/ログイン後、URL内のユーザーのユーザー名にしたい、これはhttp://myweb.com/home/255を生成し、私が現在使用している再書き込みルールの一つであります:

<rule name="HomeRewrite" stopProcessing="true"> 
    <match url="^home$"/> 
    <conditions> 
     <add input="{URL}" pattern="\.axd$" negate="true"/> 
    </conditions> 
    <action type="Rewrite" url="/home.aspx"/> 
</rule> 

私は自分自身にこのような何かに変更してみました:

<rule name="HomeRewrite" stopProcessing="true"> 
    <match url="^{R:1}/home$"/> 
    <conditions> 
     <add input="{URL}" pattern="\.axd$" negate="true"/> 
    </conditions> 
    <action type="Rewrite" url="/home.aspx"/> 
</rule> 

をしかし、それは働いていないと私はWRをやっている知っていますong。この点でどんな助け?

+0

なぜページルーティングを使用しないのですか?私はルートデータにユーザー名を追加するいくつかのページルーティングコードを持っています。それとも、ブラウザのアドレスバーのURLを変更したいのですか? –

答えて

2

ASP.NET RoutingあなたはASP.Netでのメカニズムを使用することができますMVCの一部が同様のアプリケーションを形成しているが、(http://www.4guysfromrolla.com/articles/051309-1.aspxを参照)

例えばカスタムクラスCustomRouteHandlerは、設定コード(ビュー)に要求を送信IRouteHandlerを実装どこ Application_Start(object sender, EventArgs e)のGlobal.asaxの空で、あなたはこのコード

RouteTable.Routes.Add("Users", new Route("{username}/settings", 
new CustomRouteHandler())); 

を追加することができます。

ユーザーが認証されるとすぐに、そのURLに実際にリダイレクトする必要があります。 in Global.asax's Application_BeginRequest(object sender, EventArgs e)