asp.net サイトをパスワードで保護しようとしていますが、問題なく実行できましたが、アドレスの末尾に /home.aspx を追加すると、ログイン ページをバイパスしてしまいます。ボタンからのみアクセスできるページで、直接アクセスするとログインページにリダイレクトされますか?
ありがとう
asp.net サイトをパスワードで保護しようとしていますが、問題なく実行できましたが、アドレスの末尾に /home.aspx を追加すると、ログイン ページをバイパスしてしまいます。ボタンからのみアクセスできるページで、直接アクセスするとログインページにリダイレクトされますか?
ありがとう
他の方法を使用している場合を除き、msdnでasp.netメンバーシッププロバイダーのドキュメントを確認してください。
http://msdn.microsoft.com/en-us/library/ff648345.aspx
右下にスクロールすると、これが探しているものですが、このページには必要なすべての情報が表示されます。
ログオン状態をセッションに保存し、ページの読み込みまたは pre init で、ログインに成功した場合にのみ設定される isLoggedin フラグをチェックできます。これは、ログインしている場合はページに直接移動することを妨げませんが、ログインしていない場合は締め出します.
ログインした時点で、セッションを開始する必要があります。これは、高校のプロジェクトの 1 つで使用したコードです。
> public void LoginUser(string id, string mail, string ww, string admin)
> {
> Session["UserID"] = id;
> Session["IsAdmin"] = admin;
> if(admin == "admin")
> {
> Response.Redirect("~/Admin/AdminCP.aspx");
> }
> else if (admin == "user")
> {
> Response.Redirect("~/User/UserCP.aspx");
> }
> else
> {
> lblLoginError.Text = "An error has accurred";
> lblLoginError.Visible = true;
> lblLoginError.CssClass = "failureNotification left";
> }
> }
これは、ユーザーが管理者か基本ユーザーかを検出するために使用した方法です。この後、Page_Load セクションのすべてのページに追加する必要があります
> if (Session["UserID"] == null)
> {
> Response.Redirect("~/Account/Login.aspx");
> }
これにより、セッション UserID が実行されているかどうかが毎回チェックされます。空の場合、ログインは発生していないため、ユーザーはログインできるページにリダイレクトされます。
これが役に立てば幸いです;-)