`
tudusi
  • 浏览: 1069050 次
文章分类
社区版块
存档分类
最新评论

asp.net webform 重复登录小例子

 
阅读更多

因为项目需要,这两天一直在尝试和思考 重复登录的问题,

想到一些可以思考或者是运用的东西:

Session Application Dictionary MacAddress Cookie 下面将为什么考虑要使用这个而做一个分析

Session对象:保存用户信息如:UserName之类的 这样方便不同的页面访问UserName这样的对象 而且Session.SessionID 也是一个唯一的 在session过期移除对象的时候作用明显

AppLication 对象 一个不可少的对象,保存一个在线用户的一个列表,方便查看该用户是否已经登录,现在的状态是什么

Dictionary 可以在application中放入dic,方便查询和存放对象

MacAddress 对象和 Cookie 对象, 这两个对象我是想的比较深入:假如我们要在不同的浏览器中实现一个浏览器中登录了在另外的浏览器上还是登录状态这样的想法 我想 MacAddress 和Cookie对象就很有用处了. MacAddress 可以判断该对象是不是同一台计算机,而Cookie 可以代替Session存放用户信息(因为session跨浏览器是得不到值的

)

以上是我思考到的一些碎片 于是开始了整理逻辑和写代码

流程上应该是这样的:

一个用户[A]到了一个登录的页面上,输入了用户名和密码 登录了,到了一个主页面. 而有同样帐号和密码的另一个用户[B]在别的计算机也登录了,到了主页面,当A刷新的时候出现:您的帐号在别的地方已经登录了怀疑您的帐号是否被盗用,您将失去访问权限,请重新登录并且修改登录密码. 这里需求上说采用踢人的方式进行防止重复登录

流程清楚了 逻辑也就很明白了;

首先是要申请一个Application 用户登录,我们得把这用户的相关信息放置到session中,方便在主页面中使用,将 用户信息和Session.SessionID做一个键值对的关系并且放到Dictionary中 判断Application中是否有该对象[如果有该对象说明这个用户在别的地方是登录状态或者说上一次登录的状态还没有消失(session 还没有过期程序还没有移除该对象)]有该用户 将该用户从dic中移除,从application中移除此用户信息. 在重新添加该用户信息,但现在的信息和以往不同的是:key值不同sessionID 不同

Code:


以上的代码是登录页面的核心代码.


在主页面将要[判断的是进入主页面的用户有没有登录,有没有被踢出.

怎么判断呢? 当前登录的用户key值和value值能对应就算是

Code:


在Global文件中唯一要做的就是将过期的session做一个移除

因为考虑到移除session的不方便处所以就将session.sessionid做为dic的key,这样就可以很方便的将该对象做一个移除

Code:




暂时没有考虑到相同的计算机上不同的浏览器使用问题 先将得到MacAddress的方法贴下以免以后难找:




分享到:
评论

相关推荐

    asp.net webform冻结列 冻结表头 复杂表头

    在ASP.NET WebForm开发中,有时我们需要创建具有复杂布局的表格,例如,表格可能需要有冻结的列或表头,以便用户在滚动时始终保持关键信息可见。这种功能在处理大量数据或者多列分类的场景中尤其有用。下面将详细...

    c# asp.net webform web页面打印,可以控制需要打印和不需要打印的位置

    在C# ASP.NET WebForm框架下,Web页面打印是一个常见的需求。这通常涉及到将网页内容输出到打印机或者生成PDF文档供用户下载打印。本篇将深入探讨如何控制Web页面上哪些部分可以打印,哪些部分不需要打印,以及相关...

    一个基于C#+asp.net实现的Json Web Editor 字符串编辑工具源码及例子

    在使用这个C#+ASP.NET实现的JSON Web Editor时,开发者可以学习到如何在C#中处理JSON数据,如何利用ASP.NET构建Web服务或应用程序,以及如何设计用户友好的编辑界面。对于想要提升Web开发技能,特别是与JSON数据打...

    ASp.net 剖析三层架构

    ASp.NET三层架构是一种软件设计模式,用于组织和分离应用程序的不同组件,以提高代码的可重用性、可维护性和可扩展性。该架构通常包括表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。 1. 表现层(UI): ...

    ASP.NET WebForm也可以这样用Ajax

    ASP.NET WebForm是一种传统的.NET开发模型,用于构建交互式的Web应用程序。尽管现代Web开发更倾向于使用单页应用(SPA)和MVC模式,但WebForm仍然在某些场景下被广泛使用。在WebForm中实现Ajax功能,即在不刷新整个...

    在ASP.NET 2.0中操作数据之三十四:基于DataList和Repeater跨页面的主/从报表

    在这个例子中,我们将使用DataList控件来显示从属信息。 要在Repeater控件中添加超链接,可以在ItemTemplate里嵌入一个标签,并通过编程的方式来设置其href属性,使其包含传递到目标页面所需的参数。例如,可以通过...

    ASP.NET 入门经典 pdf

    - 讲解了ASP.NET WebForm中的Page对象的作用及如何使用。 2. **我的第一个Page** - 通过创建一个简单的Page来演示基本操作。 3. **使用ServerControl** - 解释了ServerControl的概念,并介绍了几种常用的服务器端...

    asp.net伪静态DEMO

    `App_Code` 目录是ASP.NET用来存放全局类和辅助代码的地方,虽然在这个例子中没有具体提及这个目录下的文件,但在实际开发中,可能有与伪静态相关的类或接口存在,如URL重写类。 `伪静态的意义.doc` 文件很可能包含...

    Asp.Net MVC 框架 官方示例

    Asp.Net MVC(Model-View-Controller)框架是微软推出的一种用于构建动态网站、Web应用程序和Web服务的技术。它在Web开发领域具有广泛的应用,与传统的WebForm框架并驾齐驱,提供了更灵活、可测试性和更清晰的代码...

    asp.net中grideview从数据库中读取数据的简单例子

    这个简单的例子展示了如何在ASP.NET中使用GridView控件和SqlDataSource控件连接数据库并显示数据。你可以根据实际需求进行扩展,如添加条件查询、数据验证、自定义样式等高级功能。 在提供的“Web1”文件中,可能...

    net C# webform msgbox 警告、确认消息框

    WebForm是ASP.NET的一个重要组成部分,它允许开发者使用类似WinForms的事件驱动模型来创建交互式的Web应用。在WebForm中,有时我们需要向用户显示警告或进行确认操作,这时可以使用类似于Windows应用程序中的消息框...

    jsWebServices一个例子asp.net

    在这个例子中,我们将深入探讨如何使用ASP.NET来构建和消费jsWebServices。 首先,我们来看`Global.asax`文件。这个文件在ASP.NET应用中定义了全局应用程序事件,比如应用程序启动、结束、会话开始和结束等。在这里...

    asp.net 缓存的各种方法

    ASP.NET 缓存机制是为了提高网站性能,减少服务器负载,通过存储经常访问的数据或计算结果,以便后续请求能快速响应。缓存分为多种类型,包括页面输出缓存、页面局部缓存、应用程序数据缓存、文件缓存依赖、数据库...

    asp.net工厂模式例子

    在ASP.NET开发中,工厂模式的应用可以帮助我们更好地管理和控制对象的实例化过程,提高代码的可扩展性和可维护性。接下来,我们将深入探讨如何在ASP.NET中实现工厂模式,以及它所带来的好处。 首先,工厂模式的核心...

    ASP.NET(C#)计数器

    在ASP.NET (C#)中,计数器是一种常见的功能,用于跟踪和显示网站的访问次数。以下是如何在ASP.NET环境中实现一个简单的计数器的详细步骤和相关知识点: 1. **创建ASP.NET Web工程**: 首先,你需要在Visual Studio...

    一次性分享一些.NET板网友高频经常索要的源代码

    4. **Online Shopping Cart Asp.Net WebForm.zip**:这是一个基于ASP.NET WebForms的在线购物车示例。WebForms是ASP.NET的一种开发模型,它提供了一种事件驱动的编程方式,用于构建交互式Web应用。这个示例可能包括...

    HighCharts 后台取Json数据--asp.net版源码

    最近做HightCharts,需要从后台获取数据。但是网上的例子互相抄袭,多数是后台...本例子是用asp.net webform实现后台获取Json数据,同时展示为HighCharts饼图。相信聪明的你能够同样写出mvc或者其他图标的模拟代码。

    asp.net编程实现删除文件夹及文件夹下文件的方法

    在这个例子中,它用于获取服务器上“Image”文件夹的物理路径。 2. `Directory`和`File`类是.NET框架中System.IO命名空间下的静态类,它们分别提供了用于操作目录和文件的静态方法。`Directory.GetFiles`方法用于...

Global site tag (gtag.js) - Google Analytics