単純な認証モデルに基づいて構築されたWebサイトがあります。ローカルおよびローカルIISで正常に実行されますが、正しい資格情報を入力した後、デフォルトのページにリダイレクトされません。これはすべてテストサーバーで行われます。
コードは次のようになります。
Web.config
<compilation targetFramework="4.0" />
<httpRuntime maxRequestLength="50000" />
<customErrors mode="On" defaultRedirect="exc/exc.aspx?e=1">
<error statusCode="404" redirect="exc/404.aspx?e=404"/>
</customErrors>
<authentication mode="Forms">
<forms loginUrl="admin/login.aspx" defaultUrl="admin/main.aspx" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
</system.web>
<location path="admin">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path="admin/css/cms.css">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="admin/css/styles.css">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="admin/images">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="exc/exc.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
login.aspx
フォームアクションプロパティは空白で、AutoEventWireupはtrueです。
login.aspx.cs
protected void btnAuth_Click1(object sender, EventArgs e)
{
//Some code not shown...
//User Validation
ValidateUserResponse response = new ValidateUserResponse();
response = service.ValidateUser(request);
if (response.State == true)
FormsAuthentication.RedirectFromLoginPage(request.Alias, False);
}
サインアウト
protected void Page_Load(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect(FormsAuthentication.LoginUrl);
}
テストサーバーでは、URLは次のようになります。
http://192.168.1.58/TestSite/admin/login.aspx
VS2010では、公開されたローカルIISでも同様に機能しますが、TestServerで公開されたときに、ログイン後にデフォルトページにリダイレクトされない理由がわかりません。Webサイトにログインする必要があり、403forbiddenエラーが発生したことを示しています。
ローカルで私はURLフォームと動作の両方でそれをテストしました(仮想フォルダー名は異なります):
http://192.168.1.58/TestSite1/admin/login.aspx
http://localhost/TestSite1/admin/login.aspx
それを機能させるための問題についての提案をいただければ幸いです。
ありがとうございました。
- - - - - アップデート - - - - - -
私はこの方法で問題を解決しました:
- WebAppを含む仮想ディレクトリを右クリックします
- [ディレクトリセキュリティ]タブに移動します
- [変更]をクリックします
- 未チェックの統合Windows認証
- 匿名アクセスもチェックする必要があります
これにより、Web.ConfigのWebForms認証設定がWebAppに影響を及ぼし始めました。
ありがとうございました。