locked
asp.net基于Forms的身份验证 RRS feed

  • 问题

  • 项目需求:必须登录才能进入系统,防止用户输入URL直接访问页面,想用asp.net基于Forms的身份验证,但试验不成功,请指点,最好给点代码。

    1、项目是带框架的(为什么不能贴图?)

    项目名称
    app_Code
    app_Data
    app_Themes
    Bin
    Frame
    Login.aspx
    Frame.htm
    top.htm
    left.htm
    bottom.htm
    main.htm
    UserManage
    .
    .
    .
    登录成功后进入Frame.htm,通过left.htm的菜单访问其它页面。

    2、web.config中的设置:
    <authentication mode="Forms">
          <forms name="MainForm" loginUrl="Login.aspx" protection="All" timeout="60">
          </forms>
        </authentication>
        <authorization>
          <allow users="*"></allow>
          <deny users="?"></deny>
        </authorization>

    3、知道System.Web.Security.FormsAuthentication的SetAuthCookie()、RedirectFromLoginPage(),但不知道怎么用,代码怎么写,是写在登录按钮事件里还是其它地方?
    2008年8月28日 3:03

答案

  • 已经解决了,web.config中<allow users ="*"/>删除就可以了,谢谢!
    2008年8月28日 7:08

全部回复

  • asp.net基于Forms的验证网上有很多例子了,建议您先搜索一下看看,如果再有问题,再回来讨论,这里再贴代码也都是差不多的,

    贴图方法:


    2008年8月28日 5:00
    版主
  • 是我自己机器上的图片,也可以吗?

    代码已经搞明白了,登录按钮事件里通过验证后,先写cookie,再转页面。如下:

    FormsAuthentication.SetAuthCookie(m_strUserID, false);
    HttpCookie cookie = Context.Response.Cookies[FormsAuthentication.FormsCookieName];
    String redirectUrl = String.Empty;

    if (Context.Request.Path.ToLower().IndexOf("login.aspx") < 0)
    {
        redirectUrl = Context.Request.RawUrl;
    }
    else
    {
        redirectUrl = "Frame.htm";
    }

    Response.Redirect(
    redirectUrl);

    但直接输入URL后,并没有转到登录页面。请问是什么原因?
    2008年8月28日 6:15
  • 已经解决了,web.config中<allow users ="*"/>删除就可以了,谢谢!
    2008年8月28日 7:08