在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、首先在建2个项目,在web.config里的<system.web>节点下添加 <machineKey validationKey="282487E295028E59B8F411ACB689CCD6F39DDD21E6055A3EE480424315994760ADF21B580D8587DB675FA02F79167413044E25309CCCDB647174D5B3D0DD9141" decryptionKey="8B6697227CBCA902B1A0925D40FAA00B353F2DF4359D2099" validation="SHA1"/> 两个项目的设置必须相同 2、 把配置文件的<authentication mode="Windows"/>验证改成Form验证 <authentication mode="Forms"> <!-- 所有用户都可以访问,改成<deny users="?"></deny>表示禁止匿名用户登录,如果对Form验证不了解,参考其他文章 --> 3、在其中一个项目建立登陆页面login.aspx,拖一个文本框和按钮 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 后台代码为:
代码
3、在Default.aspx页面中,加载事件为: string cookieName = FormsAuthentication.FormsCookieName; Response.Write(cookieName); HttpCookie authCookie = Context.Request.Cookies[cookieName]; if (null == authCookie) { return; } FormsAuthenticationTicket authTicket = null; try { authTicket = FormsAuthentication.Decrypt(authCookie.Value); Response.Write("</br>"+authCookie.Value); } catch (Exception ex) { return; } if (null == authTicket) { return; } FormsIdentity id = new FormsIdentity(authTicket); String[] roles = id.Ticket.UserData.Split('|'); //读出在登录时设置的角色列表。 foreach (string role in roles) { Response.Write("</br>"+role); } System.Security.Principal.GenericPrincipal principal = new System.Security.Principal.GenericPrincipal(id, roles); Context.User = principal;//将验证信息附加到当前用户上下文。 Response.Write("</br>" + User.Identity.Name+"</br>"+User.GetType()); 显示了获取此次登录保存在Cookie中的用户信息(已近加密)。 4、同样在第二个项目的某个页面获取登录的Cookie信息, User.Identity.Name是登录名,从数据库获取信息,放入sesstion中,进行相应操作。 5、退出系统用 System.Web.Security.FormsAuthentication.SignOut();
|
请发表评论