• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

我做了一个对cookie检验但我并不想每个页都验证

cqhydz 2004-11-05 02:20:33
有关窗体验证我是参照以下文章做的。但发现现在所有页均要先到logon.aspx。但有些页面我并不需要检验的如何修改呢


http://www.microsoft.com/china/technet/security/guidance/secmod18.mspx
...全文
190 点赞 收藏 23
写回复
23 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
暗石绿 2004-11-06


web.config 加在哪里啊
<configuration>
之间吗
</configuration>



是的
回复
cqhydz 2004-11-05
up
回复
okwinds 2004-11-05
加个字,在“你”和“怕”之间加个“不”字
回复
okwinds 2004-11-05
呵呵,好热闹啊,但是Cookies有安全漏洞哦,你怕被人利用,损害你用户的利益,然后再遭用户投诉?
回复
cqhydz 2004-11-05

在 Application_AuthenticateRequest中
if(null == authCookie)
{

FormsAuthentication.RedirectFromLoginPage("ttt",false);

return;
}

这样不管我请求哪个面页就会自动转到我的default.aspx页上。这里我设置的启始页是web1.apsx页面啊
回复
cqhydz 2004-11-05
web.config 加在哪里啊
<configuration>
之间吗
</configuration>
回复
colinliu 2004-11-05
在web.config中

<!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是“Windows”、“Forms”、

“Passport”和“None”

-->
<authentication mode="Forms">
<forms name="IStoreStoreAuth" loginUrl="login.aspx" timeout="20" protection="All" path="/" />
</authentication>
<authorization>
<deny users="?" />
</authorization>


如上用,可以的。。。。
回复
暗石绿 2004-11-05
在 web.config 文件里加入以下节点:
<location path="test.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

在上面,test.aspx 页为不需要验证的页面。
回复
cqhydz 2004-11-05
在 Application_AuthenticateRequest中
if(null == authCookie)
{

FormsAuthentication.RedirectFromLoginPage("ttt",false);

return;
}

这样不管我请求哪个面页就会自动转到我的default.aspx页上。如果只有return;这一句的话又会自动转到login.aspx下。

下面是我项目中的设置

web.config
<authentication mode="Forms">
<forms name="Iname" loginUrl="login.aspx" timeout="20" protection="All" path="/" />

Global.asax
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
// 提取窗体身份验证 cookie
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = Context.Request.Cookies[cookieName];

if(null == authCookie)
{

FormsAuthentication.RedirectFromLoginPage("zbook",false);

return;
}


FormsAuthenticationTicket authTicket = null;
try
{
authTicket = FormsAuthentication.Decrypt(authCookie.Value);
}
catch(Exception ex)
{
// 记录异常情况详细信息(为简便起见,已省略)
Response.Write(ex.ToString());
return;
}

if (null == authTicket)
{
// 无法解密 Cookie。
return;
}

// 创建票证后,为 UserData 属性指定一个以管道符分隔的角色名字符串。
string[] roles = authTicket.UserData.Split(new char[]{'|'});

// 创建一个标识对象
FormsIdentity id = new FormsIdentity( authTicket );

// 该主体将通过整个请求。
GenericPrincipal principal = new GenericPrincipal(id, roles);
// 将新的主体对象附加到当前的 HttpContext 对象
Context.User = principal;



}
回复
cqhydz 2004-11-05
zlc810821(卷心菜)的方法不错就是太复杂了
yllaji(51Hgame.com) 方法比较简单实用,同我想的第一个思路类似。
回复
zhn0410 2004-11-05
<authentication mode="Forms">
<forms name="FormAuthentication" path="/" loginUrl="members.aspx?Action=login" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
回复
babyfast 2004-11-05
同意 jonescheng(C#前进无极限)
需要验证页和web.config的放到一个文件夹下.其他的就不用验证了
回复
yllaji 2004-11-05
验证登陆 我是这么作的

FormsAuthentication.RedirectFromLoginPage(UserName,false);
Response.Redirect("main.aspx");

呵呵 没什么问题

我登陆后 默认是 main.aspx
回复
yllaji 2004-11-05
我是这么用的 没出过问题


<!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是“Windows”、“Forms”、

“Passport”和“None”

-->
<authentication mode="Forms">
<forms name="IStoreStoreAuth" loginUrl="login.aspx" timeout="20" protection="All" path="/" />
</authentication>
<authorization>
<deny users="?" />
</authorization>

回复
zlc810821 2004-11-05
做一个基类,其中加入cookie的验证,其余的页面继承这个基类。就可以实现了。我就是这么做的。绝对oo
回复
cqhydz 2004-11-05
Global.asax 设置什么
回复
conationego 2004-11-05
这个好象是在Global.asax 中设置一下,写一些代码,我在章立民那本书上看到过,你可以去查一下
回复
cqhydz 2004-11-05
????
回复
jonescheng 2004-11-05
你把你想要验证的文件放到一个目录下,然后把Web.config文件放到这个目录就行了。
当然Web.config要配置好访问的控制。。。
回复
cqhydz 2004-11-05
具体点
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-11-05 02:20
社区公告
暂无公告