posts - 25, comments - 47, trackbacks - 1, articles - 2

2006年2月8日

两个站点,登陆一个另外一个就不用登陆了。
站点1 A,站点2 B
A中的配置:
web.config中:
  <machineKey validationKey="DD305F238C8F26103323F10B1A655ED9FA7DBB7A" decryptionKey="70DE128000E565A7F8441A4C091C11EC8C5BB9B4D4EDA7A1" validation="SHA1"/>
  
<authentication mode="Forms"> 
   
<forms name=".ASPXFORAUTH" loginUrl="WebForm/Login.aspx" timeout="30" protection="All"></forms> 
  
</authentication>

登陆代码写成:
            FormsAuthentication.SetAuthCookie(txtUserName.Text.Trim(), False)
            Response.Redirect(
"Main.aspx"False)

如果要在不同的站点中通用一些数据信息,使用Cookies
            Dim ck As New System.Web.HttpCookie("login"'创建一个名为login的Cookie
            ck("loginid"= txtUserName.Text.ToUpper().Trim()  '一个cookie中可以存放若干个键值对.
            Response.Cookies.Add(ck)

B中的配置:
web.config中的配置:
    <!--<authentication mode="Windows" /> -->
    
<machineKey validationKey="DD305F238C8F26103323F10B1A655ED9FA7DBB7A" decryptionKey="70DE128000E565A7F8441A4C091C11EC8C5BB9B4D4EDA7A1" validation="SHA1"/>
    
<authentication mode="Forms">
        
<forms name=".ASPXFORAUTH" loginUrl="Login.aspx" timeout="20" protection="All"></forms>
    
</authentication>

登陆代码为:
                System.Web.HttpCookie ck = new HttpCookie("login");
                ck.Expires 
= System.DateTime.Now.AddMinutes(Session.Timeout);
                ck[
"loginid"= strLogin.ToUpper();
                Response.Cookies.Add(ck);
                System.Web.Security.FormsAuthentication.SetAuthCookie(txtUserName.Text.Trim(), 
false);
                Response.Redirect(
"main.aspx");

需要注意的是web.config中forms的name,应该一样。并且客户端允许使用cookies。 

posted @ 2006-02-08 15:34 wngwz 阅读(743) 评论(1) 编辑

备份一下~
        /// <summary>
        
/// 获取IP地址
        
/// </summary>

        public static string IPAddress
        
{
            
get 
            
{
                
string ipAddress = "000.000.000.000";
                
try
                
{
                    
// 有可能是后台调用
                    HttpContext context = HttpContext.Current;                
                    ipAddress 
= GetUserIpAddress(context);
                }

                
catch{}
                
return ipAddress;
            }

        }


        
/// <summary>
        
/// 透过代理获取真实IP
        
/// </summary>
        
/// <param name="context"></param>
        
/// <returns></returns>

        public static string GetUserIpAddress(HttpContext context)
        
{
            
string result = String.Empty;
            
if (context == null
                
return result;

            
// 透过代理取真实IP
            result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            
if (null == result || result == String.Empty)
                result 
= HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            
            
if (null == result || result == String.Empty)
                result 
= HttpContext.Current.Request.UserHostAddress;

            
return result;
        }

posted @ 2006-02-08 15:13 wngwz 阅读(98) 评论(0) 编辑

摘要: namespaceBaseSystemFramework{usingSystem;publicclassCapitalization{publicCapitalization(){}//金额数字(小写)转换成文字(大写)privatestaticstring[]shuzi={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};privatestaticstring[]...阅读全文

posted @ 2006-02-08 10:56 wngwz 阅读(123) 评论(0) 编辑

2005年11月29日

由于公司内部需要一个编码转换工具,所以在参考网络上的其他人的代码的基础上做了一个编码格式转换工具,GB2312-->UTF8;BIG5-->UTF8。特此感谢: 灵感之源等网络上的朋友。
如需原码来信索取。wngwz at msn.com
../Files/wngwz/DirectorySearch.rar

posted @ 2005-11-29 15:05 wngwz 阅读(492) 评论(2) 编辑

2005年9月6日

今天在写代码时,弹出一个模态窗体操作完数据后,需要把父窗体的数据重新加载一编。
使用 __doPostBack('','')一直抱错。检查了好几遍总不对。当无意间察看父窗体的弹出代码时
终于发现了问题:

错误代码:
Page.RegisterStartupScript("showmodaldialog", "<script>window.showModalDialog('../WebForm/frmunSucceedForCause.aspx?result=unsucceed&acceptnum=" + txtAcceptNum.Text.Trim() + "','window', 'dialogheight=240px;dialogwidth=330px;status=no;edge=raised;scroll=no');</script>");
正确代码:

Page.RegisterStartupScript("showmodaldialog", "<script>window.showModalDialog('../WebForm/frmunSucceedForCause.aspx?result=unsucceed&acceptnum=" + txtAcceptNum.Text.Trim() + "',window, 'dialogheight=240px;dialogwidth=330px;status=no;edge=raised;scroll=no');</script>");

唉!马虎大意害死人呀!

posted @ 2005-09-06 13:45 wngwz 阅读(394) 评论(1) 编辑

2005年4月21日

今天修改原来代码中的DataGrid分页部分,顺便重新修搞了个存储过程(学习了csdn上的例子!)

 1/*
 2一个将数据分页的存储过程     
 3 */

 4 CREATE PROCEDURE Proc_Pagination
 5  @tb         varchar(50),             --表名
 6  @col        varchar(50),            --按该列来进行分页
 7  @coltype    int,                      -- @col 列的类型,0-数字类型,1-字符类型,2-日期时间类型
 8  @orderby    int,                      --排序,0-顺序,1-倒序
 9  @collist    varchar(800),          --要查询出的字段列表,*表示全部字段
10  @pagesize   int=10,               --每页记录数
11  @page       int=1,                   --指定页
12  @condition  varchar(800)        --查询条件
13AS
14
15DECLARE @sql nvarchar(4000)
16DECLARE @where1 varchar(800)
17DECLARE @where2 varchar(800)
18IF @condition is null or rtrim(@condition)=''
19 BEGIN    --没有查询条件
20   SET @where1=' WHERE '
21   SET @where2='  '
22 END
23ELSE
24 BEGIN    --有查询条件
25   SET @where1=' WHERE ('+@condition+') AND '  --本来有条件再加上此条件
26   SET @where2=' WHERE ('+@condition+''          --原本没有条件而加上此条件
27 END
28
29IF @orderby=0  --排列顺序 0 顺序 1 倒序
30  SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
31           ' FROM '+@tb+@where1+@col+'>(SELECT MAX('+@col+''+
32           ' FROM (SELECT TOP '+CAST(@pagesize*(@page-1AS varchar)+' '+
33           @col+' FROM '+@tb+@where2+'ORDER BY '+@col+') t) ORDER BY '+@col
34ELSE     
35  SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+
36           ' FROM '+@tb+@where1+@col+'<(SELECT MIN('+@col+''+
37           ' FROM (SELECT TOP '+CAST(@pagesize*(@page-1AS varchar)+' '+
38           @col+' FROM '+@tb+@where2+'ORDER BY '+@col+' DESC) t) ORDER BY '+
39           @col+' DESC'
40IF @page=1--第一页
41  SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+' FROM '+@tb+
42    @where2+'ORDER BY '+@col+CASE @orderby WHEN 0 THEN '' ELSE ' DESC' END
43EXEC(@sql)
44GO
45
46

posted @ 2005-04-21 13:44 wngwz 阅读(370) 评论(0) 编辑

2005年3月22日

最近的一个项目使用VS.NET2002 水晶报表使用9.2.33 在做报表的过程中一些倒还顺利,但是在部署时出现
很多问题,例如CRPE32.DLL,无法加载DLL,版本不对等问题,解决的办法除了从网络上找来的一些解决方法之外,还有自己的一点积累,原来的 VS.NET2002自带的报表是9.1.33在添加引用的时候一定要注意,不要出现版本错误,如果客户端是.NET FRAMEWORK1.1则你可以直接使用水晶报表9.2.33不需要在更改其他的什么DLL文件,注意DLL的版本是9.2.33即可。如果客户端使用 的.NET FRAMEWORK1.0如果你还是用9.2.33则会说版本不对,无法安装,这个时候你就要使用9.1.33了,并且需要拷贝9.2.33版本中的 crpe32.dll覆盖9.1.33中crpe32.dll文件,这样就不会再出现crpe32.dll unload的问题了(可以在C:\Program Files\Common Files\Crystal Decisions目录下检查版本号)

posted @ 2005-03-22 16:05 wngwz 阅读(682) 评论(0) 编辑

2005年2月8日

摘要: 新年快乐!阅读全文

posted @ 2005-02-08 15:11 wngwz 阅读(303) 评论(0) 编辑

2004年12月30日

摘要: 我这里还有6个邀请!要得留下你的邮箱!阅读全文

posted @ 2004-12-30 09:40 wngwz 阅读(957) 评论(7) 编辑

2004年12月23日

摘要: PrintOptions类,提供用于设置报表打印选项的属性和方法。PrintOptions成员:PageContentHeight Int32 获取页面内容的高度PageContentWidth Int32 获取页面内容的宽度PageMargins 获取报表的边距PageOrientation 获取或设置打印机纸张方向Pagesize 获取或设置当前打印机纸张的大小PrinterName 字符串 ...阅读全文

posted @ 2004-12-23 17:08 wngwz 阅读(985) 评论(1) 编辑