0

新しいポップアップ ウィンドウが開きますが、ログイン ページにリダイレクトされ、ベース ページも間違ったパスワードを表示してログインに失敗します。要件 : ブラウザに戻るボタンを使用せずに、ログイン後にポップアップ ウィンドウが必要です。

<asp:Content ID="LoginContent" ContentPlaceHolderID="LoginContent" runat="server">
      <asp:UpdatePanel ID="LoginUpdatePanel" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:Panel Width="100%" runat="server" ID="LoginPanel" HorizontalAlign="Center" DefaultButton="MainLogin$LoginButton">
                <asp:Label ID="LoginMessageValue" runat="server"></asp:Label>
                <asp:Login RememberMeSet="false" ID="MainLogin" OnLoggedIn="MainLogin_LoggedIN"  OnAuthenticate="Login_Click" runat="server" SkinID="standardLoginObject" EnableTheming="True"
                  TextBoxStyle-Width="150px" DisplayRememberMe="false">
                </asp:Login>
            </asp:Panel>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

コードビハインド:

Protected Sub Login_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        'OnAuthenticate = "Login_Click"
        ' ScriptManager.RegisterClientScriptBlock(Me.Page, Me.GetType, "error", "window.open('~/workflow/Worklist2.aspx', 'mywindow', 'status=1,toolbar=0');", True)
        Try
            Common.UserObject = System.Web.Security.Membership.GetUser(MainLogin.UserName)

            Dim _userID As Integer = Common.UserObject.ProviderUserKey
            Common.InitializeSession(_userID, nameSpaceURI)
            Dim _role() As String = System.Web.Security.Roles.GetRolesForUser(Common.UserObject.UserName)
            If _role.Length = 0 Then
                Common.ClearSession()
                Response.Redirect(ConfigurationManager.AppSettings("LoginPath"), False)
                'MainLogin.FailureText = "Please contact the customer service to review your account setup."
                'ClientScript.RegisterClientScriptBlock(Page.GetType, "Error", "alert('Please contact the customer service to review your account setup.')", True)
            End If
            ScriptManager.RegisterClientScriptBlock(Me.Page, Me.GetType, "success", "window.open('../workflow.aspx', 'mywindow', 'status=1,toolbar=0'); window.resizeTo(screen.availWidth,screen.availHeight); window.moveTo(0,0); ", True)
        Catch ex As Exception
            SaveException(ex)
        End Try
    End Sub
4

1 に答える 1

0

あなたの本当の問題は、エラーページを表示しようとしていることだと思います。エラーページを表示するには、ユーザーの認証も必要です。

エラーページを一般に公開されている場所に移動する必要があります。

この動作は、web.configで指定できます。

<configuration>
   <location path="~/errorpage.aspx">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>
于 2012-04-19T15:54:23.497 に答える