我是个新手,在做网站的时候发现,只要在地址栏输入网站内网页的地址,就可以直接浏览该网页。而不需要经过登录页面。请问我该怎么样做,才能让访客只有通过登录页面验证后才能浏览页面呢?(我用的是asp.net(c#) 做的网站.

解决方案 »

  1.   

    赋一个值给Session["login"],如果session["login"]中无值证明还没有登陆,就把网页跳到登陆页面去。
      

  2.   

    或者把你需要保护的页面放一个文件夹里
    在里面的 web.config文件中采用基与窗体的验证方式,<deny user="?">
    这样就可以了
      

  3.   

    建议用membership和role的解决方案,只需要把想保护的页面和路径在web.config中配置好就可以了。
      

  4.   

    session 保持的时间能不能自己设定,若能的话又怎么样设定呢?
      

  5.   

    session.timeout=***; //session的时间控制if Session("***")="" then 
        Response.Redirect("login.aspx")
        end if      //如果session为空则自动跳转到登陆页
      

  6.   

    web.config里面
    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="InProc"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="40" 
        />
      

  7.   

    我对用检验session["login"] 的方法有个疑问。如果用户不通过登录页面话,那么此时就不存在session["login"]啊!既然不存在,还怎么检查它的值是否为空呢?除非session["login"]不在登录页面创建。若是如此的话,那它又该何处被创建呢?
      

  8.   

    if(Session["login"] == null)
        Response.Redirect("~/Error.aspx");
    else
        Response.Redirect("~/Ok.aspx");
      

  9.   

    去研究FormsAuthentication这个类的用法吧http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/SurveyAdminSampleImplementingMicrosoft.NETFrameworkRole-BasedSecurity.mspx?mfr=truehttp://chs.gotdotnet.com/quickstart/aspplus/doc/formsauth.aspx
      

  10.   

    不想被匿名访问的目录内
    放个web.config
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        
      <system.web>    <authorization>
         <deny users="?"/>
        </authorization>
        
     </system.web></configuration>