FormsAuthentication.GetRedirectUrl メソッド
アセンブリ: System.Web (system.web.dll 内)

Public Shared Function GetRedirectUrl ( _ userName As String, _ createPersistentCookie As Boolean _ ) As String
Dim userName As String Dim createPersistentCookie As Boolean Dim returnValue As String returnValue = FormsAuthentication.GetRedirectUrl(userName, createPersistentCookie)
public static function GetRedirectUrl ( userName : String, createPersistentCookie : boolean ) : String
戻り値
リダイレクト URL が格納された文字列。

アプリケーション コード内で RedirectFromLoginPage メソッドを使用しないでリダイレクトを実行する場合に、このメソッドを使用できます。
GetRedirectUrl メソッドは、クエリ文字列内で ReturnURL という変数名を使用して指定されている URL を返します。たとえば、http://www.contoso.com/login.aspx?ReturnUrl=caller.aspx という URL の場合、GetRedirectUrl メソッドは戻り先 URL として caller.aspx を返します。ReturnURL 変数がない場合、GetRedirectUrl メソッドは DefaultUrl プロパティの中の URL を返します。
ブラウザがログイン ページにリダイレクトされるときに、戻り先 URL が ASP.NET によって自動的に追加されます。
既定では、ReturnUrl 変数は現在のアプリケーション内のページを参照している必要があります。ReturnUrl が、異なるアプリケーション内のページや異なるサーバー上のページを参照している場合、GetRedirectUrl メソッドは DefaultUrl プロパティの中の URL を返します。戻り先 URL として現在のアプリケーションの外側のページを参照できるようにする場合は、forms 構成要素の enableCrossAppRedirects 属性を使用して、EnableCrossAppRedirects プロパティを true に設定する必要があります。
![]() |
---|
EnableCrossAppRedirects プロパティを true に設定すると、アプリケーション間のリダイレクトがセキュリティ上の脅威につながることがあります。アプリケーション間のリダイレクトが許可されていると、サイトは、そのサイトのログイン ページを使用して Web サイトのユーザーに安全なページを使用していると信じこませる悪意のある Web サイトに対して無防備になります。アプリケーション間のリダイレクトを使用する場合にセキュリティを強化するには、GetRedirectUrl メソッドをオーバーライドして、承認された Web サイトへのリダイレクトだけを許可する必要があります。 |

認証済みユーザーを GetRedirectUrl メソッドから返された URL にリダイレクトするコード例を次に示します。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> Private Sub Login_Click(sender As Object, e As EventArgs) ' Create a custom FormsAuthenticationTicket containing ' application specific data for the user. Dim username As String = UserNameTextBox.Text Dim password As String = UserPassTextBox.Text Dim isPersistent As Boolean = PersistCheckBox.Checked If Membership.ValidateUser(username, password) Then Dim userData As String = "ApplicationSpecific data for this user." Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, _ username, _ DateTime.Now, _ DateTime.Now.AddMinutes(30), _ isPersistent, _ userData, _ FormsAuthentication.FormsCookiePath) ' Encrypt the ticket. Dim encTicket As String = FormsAuthentication.Encrypt(ticket) ' Create the cookie. Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, encTicket)) ' Redirect back to original URL. Response.Redirect(FormsAuthentication.GetRedirectUrl(username, isPersistent)) Else Msg.Text = "Login failed. Please check your user name and password and try again." End If End Sub </script> <html> <head> <title>Forms Authentication Login</title> </head> <body> <form runat="server"> <span style="BACKGROUND: #80ff80"> <h3>Login Page</h3> </span> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P> <table border=0> <tbody> <tr> <td>Username:</td> <td><asp:TextBox id="UserNameTextBox" type="text" runat="server" /></td> <td> <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserNameTextBox" /> </td> </tr> <tr> <td>Password:</td> <td><asp:TextBox id="UserPassTextBox" TextMode="Password" runat="server" /></td> <td> <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserPassTextBox" /> </td> </tr> <tr> <td>Check here if this is <u>not</u><br>a public computer:</td> <td><asp:CheckBox id="PersistCheckBox" runat="server" autopostback="true" /></td> </tr> </tbody> </table> <input type="submit" value="Login" runat="server" onserverclick="Login_Click" /> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> private void Login_Click(Object sender, EventArgs e) { // Create a custom FormsAuthenticationTicket containing // application specific data for the user. string username = UserNameTextBox.Text; string password = UserPassTextBox.Text; bool isPersistent = PersistCheckBox.Checked; if (Membership.ValidateUser(username, password)) { string userData = "ApplicationSpecific data for this user."; FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1 , username, DateTime.Now, DateTime.Now.AddMinutes(30), isPersistent, userData, FormsAuthentication.FormsCookiePath); // Encrypt the ticket. string encTicket = FormsAuthentication.Encrypt(ticket); // Create the cookie. Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)); // Redirect back to original URL. Response.Redirect(FormsAuthentication.GetRedirectUrl(username, isPersistent)); } else { Msg.Text = "Login failed. Please check your user name and password and try again."; } } </script> <html> <head> <title>Forms Authentication Login</title> </head> <body> <form runat="server"> <span style="BACKGROUND: #80ff80"> <h3>Login Page</h3> </span> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P> <table border=0> <tbody> <tr> <td>Username:</td> <td><asp:TextBox id="UserNameTextBox" type="text" runat="server" /></td> <td> <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserNameTextBox" /> </td> </tr> <tr> <td>Password:</td> <td><asp:TextBox id="UserPassTextBox" TextMode="Password" runat="server" /></td> <td> <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserPassTextBox" /> </td> </tr> <tr> <td>Check here if this is <u>not</u><br>a public computer:</td> <td><asp:CheckBox id="PersistCheckBox" runat="server" autopostback="true" /></td> </tr> </tbody> </table> <input type="submit" value="Login" runat="server" onserverclick="Login_Click" /> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からFormsAuthentication.GetRedirectUrl メソッドを検索する場合は、下記のリンクをクリックしてください。

- FormsAuthentication.GetRedirectUrl メソッドのページへのリンク