求救:具奇怪的Forms身份验证的问题!*******

chenzi259 2005-09-02 04:01:46


以下这段代码在别的项目里可以实现身份验证,可是在我新做的这个项目里,却登陆不进系统,登陆以后马上转到login.aspx
-------- 情况一 --------------------------------
<authentication mode="Forms">
<forms name="MyCookie" loginUrl="login.aspx" protection="All" timeout="60" path="/">
</forms>
</authentication>

<authorization>
<deny users="?"/>
</authorization>
-------------------------------------------
修改成下面这样以后,可以登陆,但是超时以后没有转到login.aspx

-------- 情况二 --------------------------
<authentication mode="Forms">
<forms name="MyCookie" loginUrl="login.aspx" protection="All" timeout="60" path="/">
</forms>
</authentication>

<authorization>
<allow users = "*" />
</authorization>
-------------------------------------------
请问这是为什么???!谢谢!!!
下面这样的写法结果与情况一 一样
<authentication mode="Forms">
<forms name="MyCookie" loginUrl="login.aspx" protection="All" timeout="60" path="/">
</forms>
</authentication>

<authorization>
<deny users="?"/>
<allow users = "*" />
</authorization>
------------------------------------------------
下面这样的写法结果与情况二 一样
<authentication mode="Forms">
<forms name="MyCookie" loginUrl="login.aspx" protection="All" timeout="60" path="/">
</forms>
</authentication>

<authorization>
<allow users = "*" />
<deny users="?"/>
</authorization>
------------------------------------------------
下面这样的写法结果与情况二 一样
<authentication mode="Forms">
<forms name="MyCookie" loginUrl="login.aspx" protection="All" timeout="60" path="/">
</forms>
</authentication>
------------------------------------------------

...全文
188 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
brando_beat 2005-09-06
  • 打赏
  • 举报
回复
呵呵、就是你的身份验证票没有正确设置。
jamex 2005-09-06
  • 打赏
  • 举报
回复
if(数据库里的用户名与密码相等)
{

FormsAuthentication.SetAuthCookie(tbUserName.Text.Trim(), cbKeepPwd.Checked );
if(Request["ReturnUrl"]==null)
{
Response.Redirect("default.aspx",true);
}
else
{
Response.Redirect(Request["ReturnUrl"].ToString(),true);
}
}
else
{
Page.RegisterStartupScript("","<script>alert('登录失败!!');</script>");
}

web.config

<authentication mode="Forms">
<forms name="myLogin"
path="/"
loginUrl="/Login.aspx"
protection="All"
timeout="30">
</forms>
</authentication>
jamex 2005-09-06
  • 打赏
  • 举报
回复

是你的认证cookie没被正确

使用windows集成验证方式获取用户名
HttpContext httpContext;
HttpSessionState session;

httpContext = HttpContext.Current;
session = httpContext.Session;

//COM +对象不能放进session!
string userEName = String.Empty;
if (httpContext.User.Identity.Name != String.Empty)
{
userEName = httpContext.User.Identity.Name;
userEName = userEName.Substring(userEName.IndexOf(@"\") + 1);
}
else
{
throw new Exception("用户未登陆");
}


jamex 2005-09-06
  • 打赏
  • 举报
回复
修改成下面这样以后,可以登陆,但是超时以后没有转到login.aspx

-------- 情况二 --------------------------
<authentication mode="Forms">
<forms name="MyCookie" loginUrl="login.aspx" protection="All" timeout="60" path="/">
</forms>
</authentication>

<authorization>
<allow users = "*" />
</authorization>
-------------------------------------------

这种情况下,允许所有用户,无所谓超不超时,当然不会没有转到login.aspx

chenzi259 2005-09-06
  • 打赏
  • 举报
回复
"估计是你的认证cookie没被正确生成,把你的认证编码贴出来"
认证编码是什么意思?
我的web.config是<?xml version="1.0" encoding="utf-8"?>
另外 <globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
greatbag 2005-09-06
  • 打赏
  • 举报
回复
你生成的cookie并没有和form验证联系起来,好好看看思归给的url吧!
saucer 2005-09-06
  • 打赏
  • 举报
回复
don't use Session, see how it is done

如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
http://support.microsoft.com/kb/301240/zh-cn

如何使用 Visual C# .NET 在 ASP.NET 应用程序中通过基于窗体的身份验证实现基于角色的安全性
http://support.microsoft.com/kb/311495/zh-cn
qiushuangqun 2005-09-06
  • 打赏
  • 举报
回复
你在登录页面中没有设置跳转页面,所以他会再次转到login.aspx页面。
pwqzc 2005-09-06
  • 打赏
  • 举报
回复
帮思归老大改下,也许好理解点
<allow users = "*" />
是说,允许所有用户,

<deny users="?"/>
是说,不允许匿名用户
chenzi259 2005-09-06
  • 打赏
  • 举报
回复
up
实在是太奇怪了,我的其他的项目都是这么写的,可是就这个项目不行。。。
chenzi259 2005-09-06
  • 打赏
  • 举报
回复
我的登陆成功后的代码是
Session["UserName"] = UserName;


//用于保存登陆名,以显示在登陆窗口
HttpCookie MyCookie = new HttpCookie("ECABSClient");
DateTime now = DateTime.Now;
MyCookie.Value = strUserName;
MyCookie.Expires = now.AddDays(30);
Response.Cookies.Add(MyCookie);
response.redirect("Main.aspx");
saucer 2005-09-05
  • 打赏
  • 举报
回复

<allow users = "*" />
是说,允许所有用户,

<deny users="?"/>
是说,不允许没被认证的用户

估计是你的认证cookie没被正确生成,把你的认证编码贴出来
chenzi259 2005-09-05
  • 打赏
  • 举报
回复
是啊,我也很奇怪:(
登陆后直接返回到登陆界面。。。
zhoumins 2005-09-02
  • 打赏
  • 举报
回复
<authorization>
<deny users="?"/>
<allow users = "*" />
</authorization>
这个写法没错,怎么登陆不进?
chenzi259 2005-09-02
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧