注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

创业....投资学习....

记录技术随想,结交志同道合朋友

 
 
 

日志

 
 
关于我

season,一直关注家乡的发展,关注个人的成长.工作后关注创业,关注投资.....可却忘记了一点,没有空中楼阁.于是我把视线投向了如何准备创业,创业需要什么?资源(PROFIT的六个方面?)?勇气?经验?教训?...所有的都对,但所有的都应该脚踏实地.所以,我能做的就是学习学习再学习......可应该在什么样的生存状态下学习?于是我还要解决生存的问题,再于是工作+学习便成了我日常生活的主题,而我却希望有一天事业+家庭变成我生活的主题

网易考拉推荐

Net 2.0 中如何创建cookie  

2007-06-04 18:43:06|  分类: 天马行空 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

1:cookie参与登录的过程

Ø         1:用户在浏览器中敲入网址:如www.zhaotui.com 并回车

Ø         2:浏览器向扫描客户机上www.zhaotui.com 保存的cookie,如果发现cookie的存在,浏览器将cookie发送到服务器。如果未发现,则不发送。

Ø         3:服务器获得用户请求的url,并根据cookie上保存的键值对读取信息。

Ø         4:如果未获取键值对,则服务器判定该客户机从未访问过,将创建一个新的ID,并发送cookie到客户机

 

2:cookie使用的先后顺序(假设用户机未保存cookie信息)

Ø         1:创建cookie

n         .Net 2.0 中如何创建cookie

Ø         2:发送cookie

Ø         3:保存cookie

Ø         4:使用cookie

 

3:.Net 2.0 中如何创建cookie

       3.1 .net 2.0 中创建cookie牵涉到的文件:

              1:web.config文件

              2:*.aspx文件及*.aspx.cs文件(此处以login.aspx为例)

              3:Gloab.asxa 文件

3.2       web.config文件中的编程

需要在web.config文件中指明的内容:

      a:授权的模式为Forms

      b:forms属性的设置,主要有 name:cookie的名字; loginUrl:不能登录后的转向页面;protection:cookie的安全保护方式 ; path: cookie的作用范围

      c:授权对象:如allow , deny

 

web.config文件举例:

<?xml version="1.0"?>

<!--

    Note: As an alternative to hand editing this file you can use the

    web admin tool to configure settings for your application. Use

    the Website->Asp.Net Configuration option in Visual Studio.

    A full list of settings and comments can be found in

    machine.config.comments usually located in

    \Windows\Microsoft.Net\Framework\v2.x\Config

-->

<configuration>

     <appSettings/>

     <connectionStrings>

         <add connectionString="data source=season; database=zhaotui; uid=zhaotuidba; password=si0119"/>

     </connectionStrings>

     <system.web>

         <!--

            Set compilation debug="true" to insert debugging

            symbols into the compiled page. Because this

            affects performance, set this value to true only

            during development.

        -->

         <compilation debug="true"/>

         <!--

            The <authentication> section enables configuration

            of the security authentication mode used by

            ASP.NET to identify an incoming user.

        -->

    <authentication mode="Forms">

     <forms

      loginUrl="~\login\Login.aspx"

      protection="All"

      path="/" />

 

</authentication>

<authorization>

<allow users="*"/>

</authorization>

         <!--

            The <customErrors> section enables configuration

            of what to do if/when an unhandled error occurs

            during the execution of a request. Specifically,

            it enables developers to configure html error pages

            to be displayed in place of a error stack trace.

 

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

            <error statusCode="403" redirect="NoAccess.htm" />

            <error statusCode="404" redirect="FileNotFound.htm" />

        </customErrors>

        -->

     </system.web>

</configuration>

 

3.3  *.aspx文件及*.aspx.cs文件(此处以login.aspx为例)

此处的主要功能是生成一个cookie:

生成cookie的顺序:

       1:声明一个票证:ticket,该票证中包含的信息:版本,名称,当前时间,过期时间,是否持久保存cookie标志,用户数据等。

       2:将ticket进行加密,加密算法默认:sha1

       3:将加密后的ticket写入到cookie中

使用到的主要类:FormsAuthenticationTicket 类,FormsAuthentication类,httpCookie类与Respons类;

       代码例子如下:

FormsAuthenticationTicket authentiacationTick = new FormsAuthenticationTicket(1,zhaotuiID,DateTime.Now,DateTime.Now.AddMinutes(1),remenberMeCheckBox.Checked,"www.zhaotui.com欢迎您");

            string encrypetString = FormsAuthentication.Encrypt(authentiacationTick);

            HttpCookie zhaotuiCookie = new HttpCookie(FormsAuthentication.FormsCookieName.ToString(),encrypetString);

            if (remenberMeCheckBox.Checked)

            {

                zhaotuiCookie.Expires = authentiacationTick.Expiration;

            }

            zhaotuiCookie.Path = FormsAuthentication.FormsCookiePath;

            Response.Cookies.Add(zhaotuiCookie);

 

3.3       Gloab.asax文件中的修改

Global.asax 或者 Global.asax.cs 中,找到叫做 Application_AuthenticationRequest 的方法(函数)。先要确认已经包含或者使用了 System.Security.Principal 以及 System.Web.Security 命名空间,然后修改它,修改后的代码:if (HttpContext.Current.User.Identity.IsAuthenticated)

            {

                if (HttpContext.Current.User.Identity is FormsIdentity)

                {

                    FormsIdentity formsIdentity = (FormsIdentity)HttpContext.Current.User.Identity;

                    FormsAuthenticationTicket formsAuthTicket = formsIdentity.Ticket;

 

                    //string userName = formsAuthTicket.UserData;

                    string userName = formsAuthTicket.Name;

                    welcomLable.Text = userName;

                }

            }

  评论这张
 
阅读(130)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018