一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Asp.net

解决了防止用户重复登陆和session超时

一.设置web.config相关选项先启用窗体身份验证和默认登陆页,如下。

  设置网站可以匿名访问,如下

  然后设置跟目录下的admin目录拒绝匿名登陆,如下。注意这个小节在System.Web小节下面。

  把http请求和发送的编码设置成GB2312,否则在取查询字符串的时候会有问题,如下。

  设置session超时时间为1分钟,并启用cookieless,如下。

  为了启用页面跟踪,我们先启用每一页的trace,以便我们方便的调试,如下。

          二.设置Global.asax文件 处理Application_Start方法,实例化一个哈希表,然后保存在Cache里

    在Session_End方法里调用LogoutCache()方法,方法源码如下

          三.设置相关的登陆和注销代码       登陆前调用PreventRepeatLogin()方法,这个方法可以防止用户重复登陆,如果上次用户登陆超时大于1分钟,也就是关闭了所有admin目录下的页面达到60秒以上,就认为上次登陆的用户超时,你就可以登陆了,如果不超过60秒,就会生成一个自定义异常。在Cache["online"]里保存了一个哈西表,哈西表的key是当前登陆用户的SessionID,而Value是一个ArrayList,这个ArrayList有两个元素,第一个是用户登陆的名字第二个元素是用户登陆的时间,然后在每个admin目录下的页刷新页面的时候会更新当前登陆用户的登陆时间,而只admin目录下有一个页打开着,即使不手工向服务器发送请求,也会自动发送一个请求更新登陆时间,下面我在页面基类里写了一个函数来做到这一点,其实这会增加服务器的负担,但在一定情况下也是一个可行的办法.

  用户注销的时候调用上面提到LogoutCache()方法           四.设置admin目录下的的所有页面的基类

            五.写一个自定义异常类首先要在跟目录下写一个错误显示页面ShowErr.aspx,这个页面根据传递过来的查询字符串msg的值,在一个Label上显示错误信息。

转自:http://www.cnblogs.com/hcbin/archive/2010/04/02/1702885.html

龙生   02 Jul 2011
View Details

为 FCKeditor 增加删除文件和文件夹的功能(C#)

FCKeditor 很强大也很讨人喜欢,唯一的缺点就是不支持文件和文件夹的删除,很是遗憾。这篇文章就介绍怎样为 FCKeditor 增加删除功能(基于 C# 的版本)。 FCKeditor 官方网站:http://www.fckeditor.net本文所针对版本:FCKeditor: 2.6.4,FCKeditor.Net: 2.6.3。 1. 用 Visual Studio 2005/2008 打开项目 FCKeditor.Net 2.6.3,打开文件“FileBrowser/Connector.cs”,为 class Connector 增加如下两个成员函数:

2. 在文件“Connector.cs”中找到 OnLoad 函数,在 switch 部分增加以下红色代码:

3. 编译 FCKeditor.net 并关闭该项目。将生成的 FredCK.FCKeditorV2.dll 拷贝出来以备后用。 4. 建立 C# 测试项目,并在其中部署 FCKeditor 2.6.4(使用第 3 步生成的 FredCK.FCKeditorV2.dll)。精简及部署的详细步骤非本文重点,不再重复。 5. 打开“fckeditor/editor/filemanager/browser/default/frmresourceslist.htm”,修改以下两个函数

6. 继续修改文件“frmresourceslist.htm”,在 OpenFile 函数后面增加以下两个函数:

7. 继续修改文件“frmresourceslist.htm”,找到 GetFoldersAndFilesCallBack 函数中的下面这行,增加红色部分的代码:

至此,删除功能增加完毕,见下图:   转自:http://blog.sina.com.cn/s/blog_4dfeeb6f0100ed5j.html

龙生   17 Jun 2011
View Details

SQLHelper.cs(SQLServer版)

 

龙生   12 Dec 2010
View Details

解答“编译器错误信息: CS0016: 未能写入输出文件”的办法

解决: 初次碰到这个问题,试过很多方法,比如:停止索引服务,重装IIS,重装.Net Framework,删除Temporary ASP.NET Files目录再重赋权限,甚至重装系统,问题依旧;还有一点很奇怪,我重装系统前赋予了Temporary ASP.NET Files文件夹asp.net,network service和everyone用户的最大权限,但是我格式化重装系统后,Temporary ASP.NET Files目录的权限设置居然跟重装系统之前一样,不知是不是NTFS文件系统的问题,网上搜了一下,很多人碰到这个问题想到的都是给Temporary ASP.NET Files目录赋权限,我开始也是这样,最后在微软的网站搜到了这个问题的解决方法,其实很简单,只要在windows/temp权限设置里面把Network service(如果是win2000则是asp.net用户)的权限加上就行。 具体解决方法请参照:http://support.microsoft.com/default.aspx?scid=kb;en-us;825791

龙生   08 Dec 2010
View Details

关于System.Security.SecurityException: That assembly does not allow partially trusted callers.问题的解决!

刚开始学习asp.net,常常遇到一些奇怪的问题,最近做asp.net的毕业设计,把其中的系统做好后在本机上能够正常运行,但是上传到服务器中就出现了下列问题提示: System.Security.SecurityException: That assembly does not allow partially trusted callers., 从百度查了很多资料,回答的不是不沾边,就是凭自己感觉答复。从google搜了下,前几页几乎全是英文页面,看的头大,感觉有的解释有那个道理。最后综合想了下终于明白了, 1)服务器端:将客户端的访问权限设置为full trusted callers,可以正常使用服务器资源,但是咱们对服务器不能要求有什么改动,要求了提供商也是没反应 2)自身系统:我发现系统出现这个问题的地方都是因为用到了分页控件AspNetPager.dll,于是,想到有网友提议: AssemblyInfo.cs文件中加如下内容 using System.Security; [assembly: AllowPartiallyTrustedCallers()] 我想,是啊,突然间又想这个分页控件的新版本已经把这个问题解决了吧,这样我就不必自己修改AssemblyInfo.cs文件再重新编译生成AspNetPager.dll了。从网上又下了个AspNetPagerV7.02的,然后覆盖网站空间中原来那个,再打开自己的网页,发现问题解决了! —————————————————————————————————————————————————————————————— 以上信息转自:http://blog.csdn.net/gzq521/archive/2009/05/13/4178093.aspx 经本人验证 AssemblyInfo.cs文件 的方法行不通。还是下载了个最新的AspNetPager,问题解决,谢谢gzq521。

龙生   29 Sep 2010
View Details

关于asp.net 循环输出多个随机数相同时的解决方法

关于asp.net 循环输出多个随机数相同时的解决方法 我们在使用Random生成随机数时经常会出现一种误区,下面我们就此介绍一下: 其中用于产生随机数的函数原型为:Rnd(x),该函数用以产生一个介于0~1之间的单精度随机数。x是产生随机数的种子。如果要从(min, max)这个范围内随机抽取一个数,此时需要用到公式:随机数 = (max – min) * Rnd(x) + min。一般的生成随机数方法: Random ran=new Random(); int   temp=ran.Next(100);生成100以内的一个随机数;这是没有什么问题的 但是我们经常用到for循环生成多个随机数,这时候可能就会出现问题,如果你对随机数原理不是很了解的话,很可能会出现一个误区如: for(int i=0;i<100;i++) { Random ran=new Random(); int   temp=ran.Next(100); Responsed.Write(temp.ToString()); }   这时候你会发现一个问题:生成的所有的随机数都是一样的,不管你ran.Next的值怎么设置都是一样的,为是为什么呢,这就是我们要说的一种误区,其实正确的写法是这样的: Random ran=new Random();   for(int i=0;i<100;i++) { int   temp=ran.Next(100); Responsed.Write(temp.ToString()); }   看看是不是得到了自己想要的东西。呵呵 转自:http://hi.baidu.com/arqq1230/blog/item/770fb1fab1b7ed9f58ee901c.html

龙生   31 Aug 2010
View Details

Windows 7下VS2008升级补丁

转自:http://xdenggao.blog.163.com/blog/static/19204510201022024848561/ 改成正式版操作步骤:控制面版>添加或删除程序>卸载vs.net2008>出现卸载界面>点击Next>输入下面CD-key ->点击升级->出现成功画面即可完美将试用版升级成为正式版。   CDKEY:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T 。   在Windows 7下,VS2008试用版无法正常升级到正式版。原因是维护页面的注册码输入框和升级按钮被隐藏。通过本补丁,可让注册码输入框和升级按钮恢复正常显示。 补丁下载地址 ———————————————————— 关键函数如下: void CREGVS2008Dlg::OnBnClickedButtonAutoreg(){ // 要查找的VS2008版本列表 const TCHAR* szCaption[] = {  TEXT("Microsoft Visual Studio 2008 安装程序 – 维护页"),  // 简体中文版  TEXT("Microsoft Visual Studio 2008 安裝程式 – 維護頁"),  // 繁体中文版  TEXT("Microsoft Visual Studio 2008 Setup – Maintenance Page") // 英文版 };  HWND hWnd; UINT i, uNum;  // 定位“Microsoft Visual Studio 2008 安装程序 – 维护页”窗口 uNum = sizeof(szCaption) / sizeof(const TCHAR*); for( i = 0; i < uNum; i++ ) {  hWnd = ::FindWindow( NULL, szCaption[i] );  if( hWnd != NULL )  { // 窗口发现   break;  } }  if( i == uNum ) { // 没有找到VS2008维护页窗口  MessageBox( TEXT("没有发现“Microsoft Visual Studio 2008 安装程序 – 维护页”窗口!") );  return; }  // 进入第1层子窗口 hWnd […]

龙生   01 Jul 2010
View Details

.Net framework 3.5 无法安装,附解决方法

下载了VS2008,结果在安装时总是失败,检查日志,提示:[11/22/07,18:04:40] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603[11/22/07,18:05:13] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a is not installed.[11/22/07,18:26:27] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603[11/22/07,18:26:57] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a is not installed.[11/22/07,18:49:56] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603[11/22/07,18:50:28] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a […]

龙生   21 May 2010
View Details
1 47 48