none
打开新链接的问题 RRS feed

  • 问题

  • 如果某个页面有文本框,输入字符“mykey“ 以后才能进入另外一个页面www.mypage.com,可是如果别人可以直接打开www.mypage.com链接就能进入这个页面,这样就不能很好地保护自己的信息,怎么样让别人输入www.mypage.com进入不了这个页面,一定要输入用户名密码才能进入www.mypage.com这个页面,有什么好的解决办法?
    2012年1月17日 13:32

答案

  • 在输入完"mykey"后把字符存到Session里后进入

    www.mypage.com去判断该Session是否为Nothing

    为Nothing的话,就重新导回去,不是Nothing的话表示已输入过字符,流程继续往下执行

    关于Session的运用您可以参考MVP的文章

    http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/27/5209.aspx



    2012年1月17日 14:09
  • 或許你可以考慮使用ASP.NET所提供的Membership機制來防止匿名使用者存取你的頁面。

    http://msdn.microsoft.com/en-us/library/ff648345.aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2012年1月18日 0:28

  • 如果某个页面有文本框,输入字符“mykey“ 以后才能进入另外一个页面www.mypage.com,可是如果别人可以直接打开www.mypage.com链接就能进入这个页面,这样就不能很好地保护自己的信息,怎么样让别人输入www.mypage.com进入不了这个页面,一定要输入用户名密码才能进入www.mypage.com这个页面,有什么好的解决办法?

    另外一个办法,你到web.config文件中配置Form Authentication模式,强制如果用户未登录,系统自动跳转到输入字符mykey的那个页面,一旦输入以后通过FormsAuthentication.SetAuthCookie+Response.Redirect("www.mypage.com")即可。配置参数大致如下:

    【web.config】

     

    <system.web>
        <authentication mode="Forms">
          <forms cookieless="AutoDetect" loginUrl="Login.aspx" path="/" defaultUrl="MyPage.aspx"/>
        </authentication>

        <authorization>
          <deny users="?"/>
        </authorization>
    ………………
    【项目组织结构】

    【页面代码,Login.aspx】
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WebCSharp.Login" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:textbox ID="Textbox1" runat="server"></asp:textbox>
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        </div>
        </form>
    </body>
    </html>

    【页面代码,MyPage.aspx】
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyPage.aspx.cs" Inherits="WebCSharp.MyPageaspx" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <h1>我的Page</h1>
        </div>
        </form>
    </body>
    </html>
    【后台Login.aspx代码】
    namespace WebCSharp
    {
        public partial class Login : System.Web.UI.Page
        {
            protected void Page_Load(object senderEventArgs e)
            {

            }

            protected void Button1_Click(object senderEventArgs e)
            {
                if (Textbox1.Text == "mykey")
                {
                    FormsAuthentication.SetAuthCookie("你的用户名"true);
                    Response.Redirect("MyPage.aspx");
                }
            }
        }
    }

     


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2012年1月18日 2:38
  • 在输入完"mykey"后把字符存到Session里后进入

    www.mypage.com去判断该Session是否为Nothing

    为Nothing的话,就重新导回去,不是Nothing的话表示已输入过字符,流程继续往下执行

    关于Session的运用您可以参考MVP的文章

    http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/27/5209.aspx



    补充——创建一个继承System.UI.Page的类,这个类的Page_Init应该判断Session是否为空,是空的话直接Redirect到登录页面,以后全部的其它页面继承你自己定义的这个类即可。
       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2012年1月18日 2:40

全部回复

  • 在输入完"mykey"后把字符存到Session里后进入

    www.mypage.com去判断该Session是否为Nothing

    为Nothing的话,就重新导回去,不是Nothing的话表示已输入过字符,流程继续往下执行

    关于Session的运用您可以参考MVP的文章

    http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/27/5209.aspx



    2012年1月17日 14:09
  • 或許你可以考慮使用ASP.NET所提供的Membership機制來防止匿名使用者存取你的頁面。

    http://msdn.microsoft.com/en-us/library/ff648345.aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2012年1月18日 0:28

  • 如果某个页面有文本框,输入字符“mykey“ 以后才能进入另外一个页面www.mypage.com,可是如果别人可以直接打开www.mypage.com链接就能进入这个页面,这样就不能很好地保护自己的信息,怎么样让别人输入www.mypage.com进入不了这个页面,一定要输入用户名密码才能进入www.mypage.com这个页面,有什么好的解决办法?

    另外一个办法,你到web.config文件中配置Form Authentication模式,强制如果用户未登录,系统自动跳转到输入字符mykey的那个页面,一旦输入以后通过FormsAuthentication.SetAuthCookie+Response.Redirect("www.mypage.com")即可。配置参数大致如下:

    【web.config】

     

    <system.web>
        <authentication mode="Forms">
          <forms cookieless="AutoDetect" loginUrl="Login.aspx" path="/" defaultUrl="MyPage.aspx"/>
        </authentication>

        <authorization>
          <deny users="?"/>
        </authorization>
    ………………
    【项目组织结构】

    【页面代码,Login.aspx】
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="WebCSharp.Login" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:textbox ID="Textbox1" runat="server"></asp:textbox>
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        </div>
        </form>
    </body>
    </html>

    【页面代码,MyPage.aspx】
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyPage.aspx.cs" Inherits="WebCSharp.MyPageaspx" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <h1>我的Page</h1>
        </div>
        </form>
    </body>
    </html>
    【后台Login.aspx代码】
    namespace WebCSharp
    {
        public partial class Login : System.Web.UI.Page
        {
            protected void Page_Load(object senderEventArgs e)
            {

            }

            protected void Button1_Click(object senderEventArgs e)
            {
                if (Textbox1.Text == "mykey")
                {
                    FormsAuthentication.SetAuthCookie("你的用户名"true);
                    Response.Redirect("MyPage.aspx");
                }
            }
        }
    }

     


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2012年1月18日 2:38
  • 在输入完"mykey"后把字符存到Session里后进入

    www.mypage.com去判断该Session是否为Nothing

    为Nothing的话,就重新导回去,不是Nothing的话表示已输入过字符,流程继续往下执行

    关于Session的运用您可以参考MVP的文章

    http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/27/5209.aspx



    补充——创建一个继承System.UI.Page的类,这个类的Page_Init应该判断Session是否为空,是空的话直接Redirect到登录页面,以后全部的其它页面继承你自己定义的这个类即可。
       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2012年1月18日 2:40