ASP.NET v2.0 にあるメンバーシップ プロバイダー パラダイムで見つけたいくつかの チュートリアルを使用して、認証を構成しようとしています。チュートリアルの例に従いましたが、FormsAuthentication.RedirectFromPage
メソッドを適切に機能させることができないようです。ログインを試みると、ユーザー資格情報は検証さMembership.ValidateUser
れますが、ページは Default.aspx ではなく Login.aspx に返されます。これは、私の web.config からの関連するスニペットです。
...
<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" timeout="60" name="POTOKCookie" requireSSL="false" path="/FormsAuth"
slidingExpiration="true" cookieless="UseCookies" enableCrossAppRedirects="false" defaultUrl="~/Default.aspx"/>
</authentication>
<authorization>
<deny users="?" />
</authorization>
...
<membership defaultProvider="CustomizedProvider">
<providers>
<clear />
<add name="CustomizedProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LoginDB2"
applicationName="POTOK"
minRequiredPasswordLength="5"
minRequiredNonalphanumericCharacters="0" />
</providers>
</membership>
接続文字列が正しいことを確認し (Membership.ValidateUser が正常に動作しているように見えるため)、Login.aspx ページの UI に ASP.NET ログイン コントロールを使用しています。認証イベント ハンドラのコードは次のとおりです。
Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate
If (Membership.ValidateUser(Login1.UserName, Login1.Password)) Then
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet)
End If
End Sub
URL ( http://localhost/Project )にアクセスすると、 http://localhost/Project/Login.aspxに移動し、「ログイン」後の URL はhttp://localhost/Project/Login です。 aspx?ReturnUrl=%2fProject%2fDefault.aspx
構成手順を見逃していませんか?