【解決方法】ASP.net メンバーシップ、リターン URL、リダイレクト ページ

プログラミングQA


ASPnet メンバーシップでログイン コントロールを使用しています
このコントロールにリンクを追加 (例: パスワードを忘れた場合)、ユーザーに次のページにリダイレクトしてもらいたい (例: Forgetpassword.aspx)

VB
<asp:Login ID="Login1" runat="server"  EnableViewState="true"
         OnLoggedIn="Login1_LoggedIn"   >

XML
<asp:LinkButton ID ="ForgotPassword" runat="server"
                                            onclick="ForgotPassword_Click" >Forgot password</asp:LinkButton>

メンバーシップを使用すると、ログイン ページで returnurl の問題が発生します
だから私はglobal.asaxで使用しました
//私のコードはここに入る

C#
void Application_BeginRequest(object sender, EventArgs e)
   {
       string path = HttpContext.Current.Request.Url.PathAndQuery;
       string pagequery = path.Substring(path.LastIndexOf("/") + 1);
       string[] pagequery_Elements = pagequery.Split('?');
       string ReturnUrl = pagequery_Elements[pagequery_Elements.Length - 1];

       if (ReturnUrl.Contains("ReturnUrl"))
       {         
           Response.Redirect("~/login.aspx", true);
       }
   }

URL が //…login.aspx?ReturnUrl=%2fReport%2fDefault.aspx になる前に
ログインページの問題でこれを行うとReturnurlが克服されました..
aspnet メンバーシップの回復パスワードを使用したくない
私のweb.config

XML
<authentication mode="Forms">
      <forms name=".ASPXFORMSAUTH" loginUrl="login.aspx" protection="All" path="/" timeout="43200"    requireSSL="false"
      slidingExpiration="true"
      cookieless="UseCookies"
      enableCrossAppRedirects="false" />
    </authentication>

//私の問題

リンクボタンをクリックしたときにユーザーを次のページにリダイレクトしたい…ログインページから
私のボタンクリックイベントは次のページにリダイレクトされません..そしてログインページ自体にリダイレクトされます..global.asaxから..

これを克服する方法..?
私を助けてください..
前もって感謝します..

解決策 1

パスワードを忘れた場合のページへのアクセスをすべてのユーザーに許可する必要がある場合があります。 次のコードを web.config ファイルに追加してみてください。

XML
<configuration>
   <location path="Forgetpassword.aspx">
      <system.web>
         <authorization>
            <allow users="*"/>
         </authorization>
      </system.web>
   </location>
</configuration>

コメント

タイトルとURLをコピーしました