メンバーシップエリアのあるasp.netサイトがあります。所有者はサイトの公開部分を新しい外観で更新したかったので、新しい外観で新しいログインページを作成しましたが、コードは同じです。ページを元のlogin.aspxと同じディレクトリに配置しますが、それをnew_login.aspxと呼びます。新しいページをテストしましたが、開発用コンピューターからは機能しますが、他のコンピューターからテストすると、ユーザーは存在しないページにリダイレクトされます。
両方のページにあるコードは次のとおりです。
Protected Sub LoginButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim sUser As String = Me.New_Login.UserName
If Roles.IsUserInRole(sUser, "Administrator") Then
Response.Redirect("~/Manager/AMSEmployees.aspx")
ElseIf Roles.IsUserInRole(sUser, "Manager") Then
Response.Redirect("~/Manager/AMSEmployees.aspx")
ElseIf Roles.IsUserInRole(sUser, "Employee") Then
Response.Redirect("~/AMSEmployee/AMSContacts.aspx")
ElseIf Roles.IsUserInRole(sUser, "Contact") Then
Response.Redirect("~/Customer/OrderEntry.aspx")
End If
End Sub
元のページでは、連絡先をhttp://www.xxxxx.com/Customer/OrderEntry.aspxに適切にリダイレクトします。新しいページでは、リダイレクトはhttp://www.xxxxx/login.aspx?ReturnUrl=%2fCustomer%2fOrderEntry.aspxに移動します。お客様のドメイン名をxxxxxに置き換えました。
2つのページの動作が異なる理由がわかりません。サイトのルートレベルにはログインページはありません。どんな助けでもいただければ幸いです。
新しい問題。web.coonfig認証ノードにログインページを明示的に追加しました。それは役に立ちましたが、問題を完全に解決することはできませんでした。ログインページに移動して有効なクレデンシャルのセットを入力すると、ページが見つかりませんというメッセージが表示されます。その後、同じクレデンシャルで再度ログインすると、ログインは成功し、ログアウトしてから再度ログインした場合でも、ブラウザがシャットダウンするまで機能し続けます。この動作は、複数の異なるコンピューターのブラウザーおよび異なるブラウザーで複製できます。開発サーバーでこれを複製することはできません。