3

ASP.NET メンバーシップを使用しており、登録ページでログイン コントロールなしでログインしようとしています。

ユーザーが登録ボタンをクリックすると、コントロールは redirect.aspx ページに移動します。しかし、そのページで、メンバーのホームページにリダイレクトしようとしているときに、次のエラーがスローされます。

エラー -

Unable to evaluate expression because the code is optimized or a native frame
is on top of the call stack.

Web.config -

<authentication mode="Forms">
    <forms name=".SSOAuth" loginUrl="login.aspx" defaultUrl="Redirect.aspx"
           protection="Validation" timeout="30000"/>
</authentication>

登録ページのコード -

protected void btnRegister_Click(object sender, EventArgs e)
{
    MembershipUser userMemb = Membership.CreateUser(
                           txtemail.Text.Replace("'", "''").ToString(),
                           txtPassword.Text.Replace("'", "''").ToString(),
                           txtemail.Text.ToString());

    Roles.AddUserToRole(txtemail.Text.ToString(), "Member");
    FormsAuthentication.RedirectFromLoginPage(txtemail.Text.Trim(), false);
}

Redirect.aspx.cs コード -

try
{
    if (User.IsInRole("Member"))
    {
        string UserName = User.Identity.Name;                        
        Response.Redirect("~/Member/MembeHome.aspx");
    }
}
catch(Exception ex) {}
4

1 に答える 1

1

このドキュメントを読む (問題と解決策) Response.End、Response.Redirect、または Server.Transfer を使用すると ThreadAbortException が発生する

Response.Redirect(url,false)を使用する

Response.Redirect("~/Member/MembeHome.aspx",false);
于 2012-08-18T07:13:48.723 に答える