2009-05-26 2 views
0

私はMVCプロジェクトをIIS 6サーバーに公開しました。アプリケーションMVCappの下で実行します。ウェブプロジェクトはwww.domain.com/MVCapp/のURLを取得します。タイムアウト後にMVCが許可されたユーザーを間違ったURLにリダイレクトする

私は認証のためにフォームのログインを使用し、公開後に問題が発生しました。次のように

web.configファイルは次のとおりです。

<authentication mode="Forms"> 
<forms name="CTWebCookie" loginUrl="~/Account/Login" defaultUrl="~/Home/Index" slidingExpiration="true" protection="All" timeout="20"/> 
</authentication> 

たとえば私はアクションで次のコードを実行した場合:素晴らしい作品と、ユーザがWWWにリダイレクトされ..everything

FormsAuthentication.SignOut(); 
FormsAuthentication.RedirectToLoginPage(); 

を.domain.com/MVCapp /アカウント/ログイン。

ただし、認証がタイムアウトした場合、次のページ要求時にユーザーはwww.domain.com/Account/Loginにリダイレクトされます。アプリケーションルートはルーティングされず、urlはIISルートを指します。

認証タイムアウト後に正しいURLをアプリケーションに解決させるにはどうすればよいのですか?また、自動的にサインアウトしないときにプログラマティックにログアウトするときにはなぜ機能しますか?

アドバイスをしてください。

+0

Account.Loginコードを提供できますか? –

+0

申し訳ありませんが、許可がタイムアウトすると、ログインページ(www.mydomain.com/Account/Login)の代わりにドメイン(www.mydomain.com)のルートにリダイレクトされると言っています)、 右?承認がタイムアウトしたときにユーザーに表示させる「正しい」URLは何ですか? – nkirkes

答えて

0

ネヴァーマインドを助け、正確/ MVCapp /アカウント/ログインまたは何か他のもの

希望であるかどうかを確認するために、それを考え出しアウト(愚かな間違い)、助けてくれてありがとう。

問題は、非同期リクエストの場合、target.topとしてページをリロードしたログインページのjavascriptです。 javascriptのURLが正しく解決されていませんでした。

0

ASP.NET MVCプロジェクトテンプレートでは、~/Account/Loginが使用されます。あなたのweb.configファイルをチェックしてください:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" ... /> 
</authentication> 

更新日:

は、IISのルート(www.domain.com/)上の任意のアプリはありますか?もしそうなら、IISからこのアプリを削除してみてください。また、あなたのSite.Masterにこの行を追加することができます。

<%= System.Web.Security.FormsAuthentication.LoginUrl %> 

あなたのloginUrlはこれが

+0

自分の設定が投稿されませんでした。申し訳ありません。私は今私の投稿を編集しました。あなたが見ることができるように、私はテンプレートとして同じURLを使用します。 –

関連する問題