当前位置:首页 » 网页前端 » webtruyenonline
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

webtruyenonline

发布时间: 2022-07-09 20:35:35

Ⅰ 在web.config里面怎么设置FORMS验证及配置

把你不需要验证的所有页放在一个目录下面,但是不用在那个目录下面的WEB.CONFG中对FROMS验证模式进行设置。只要在最上层的WEB.CONFIG中统一设置就可以了.比如下面的例子:
一、设置所有页面都需要验证
<system web>
<authentication mode="Forms">
<forms loginUrl = "Lonin.aspx" name = ".ASPXFORMSAUTH"/>
</authentication>
</system web>
二、再特别设置对某个目录下的页面不需要验证(NoAuto为不需要验证的页面所在的目录)
<location path="NoAuto">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

一. 设置web.config相关选项
先启用窗体身份验证和默认登陆页,如下。
<authentication mode="Forms">
<forms loginUrl="default.aspx"></forms>
</authentication>
设置网站可以匿名访问,如下
<authorization>
<allow users="*" />
</authorization>
然后设置跟目录下的admin目录拒绝匿名登陆,如下。注意这个小节在System.Web小节下面。
<location path="admin">
<system.web>
<authorization>
<deny users="?"></deny>
</authorization>
</system.web>
</location>
把http请求和发送的编码设置成GB2312,否则在取查询字符串的时候会有问题,如下。
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
设置session超时时间为1分钟,并启用cookieless,如下。
<sessionState mode="InProc" cookieless="true" timeout="1" />
为了启用页面跟踪,我们先启用每一页的trace,以便我们方便的调试,如下。
<trace enabled="true" requestLimit="1000" pageOutput="true" traceMode="SortByTime" localOnly="true" />
二. 设置Global.asax文件
处理Application_Start方法,实例化一个哈西表,然后保存在Cache里
protected void Application_Start(Object sender, EventArgs e)
{
Hashtable h=new Hashtable();
Context.Cache.Insert("online",h);
}
在Session_End方法里调用LogoutCache()方法,方法源码如下
/// <summary>
/// 清除Cache里当前的用户,主要在Global.asax的Session_End方法和用户注销的方法里调用 /// </summary>
public void LogoutCache()
{
Hashtable h=(Hashtable)Context.Cache["online"];
if(h!=null)
{
if(h[Session.SessionID]!=null)
h.Remove(Session.SessionID);
Context.Cache["online"]=h;
}
}
三. 设置相关的登陆和注销代码
登陆前调用PreventRepeatLogin()方法,这个方法可以防止用户重复登陆,如果上次用户登陆超时大于1分钟,也就是关闭了所有admin目录下的页面达到60秒以上,就认为上次登陆的用户超时,你就可以登陆了,如果不超过60秒,就会生成一个自定义异常。在Cache["online"]里保存了一个哈西表,哈西表的key是当前登陆用户的SessionID,而Value是一个ArrayList,这个ArrayList有两个元素,第一个是用户登陆的名字第二个元素是用户登陆的时间,然后在每个admin目录下的页刷新页面的时候会更新当前登陆用户的登陆时间,而只admin目录下有一个页打开着,即使不手工向服务器发送请求,也会自动发送一个请求更新登陆时间,下面我在页面基类里写了一个函数来做到这一点,其实这会增加服务器的负担,但在一定情况下也是一个可行的办法.
/// <summary>
/// 防止用户重复登陆,在用户将要身份验证前使用
/// </summary>
/// <param name="name">要验证的用户名字</param>
private void PreventRepeatLogin(string name)
{
Hashtable h=(Hashtable)Cache["online"];
if(h!=null)
{
IDictionaryEnumerator e1=h.GetEnumerator();
bool flag=false;
while(e1.MoveNext())
{
if((string)((ArrayList)e1.Value)[0]==name)
{
flag=true;
break;
}
}
if(flag)
{
TimeSpan ts=System.DateTime.Now.Subtract(Convert.ToDateTime(((ArrayList)e1.Value)[1]));
if(ts.TotalSeconds<60)
throw new oa.cls.MyException("对不起,你输入的账户正在被使用中,如果你是这个账户的真正主人,请在下次登陆时及时的更改你的密码,因为你的密码极有可能被盗窃了!");
else
h.Remove(e1.Key);
}
}
else
{
h=new Hashtable();
}
ArrayList al=new ArrayList();
al.Add(name);
al.Add(System.DateTime.Now);
h[Session.SessionID]=al;
if(Cache["online"]==null)
{
Context.Cache.Insert("online",h);
}else
Cache["Online"]=h;
}
用户注销的时候调用上面提到LogoutCache()方法
四. 设置admin目录下的的所有页面的基类
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Collections;
namespace oa.cls
{
public class MyBasePage : System.Web.UI.Page
{

/// <summary>
/// 获取本页是否在受保护目录,我这里整个程序在OA的虚拟目录下,受保护的目录是admin目录
/// </summary>
protected bool IsAdminDir
{
get
{
return Request.FilePath.IndexOf("/oa/admin")==0;
}
}

/// <summary>
/// 防止session超时,如果超时就注销身份验证并提示和转向到网站默认页
/// </summary>
private void PreventSessionTimeout()
{
if(!this.IsAdminDir) return;
if(Session["User_Name"]==null&&this.IsAdminDir)
{
System.Web.Security.FormsAuthentication.SignOut();
this.Alert("登陆超时",Request.ApplicationPath)
}
}
/// <summary>
/// 每次刷新本页面的时候更新Cache里的登陆时间选项,在下面的OnInit方法里调用.
/// </summary>
private void UpdateCacheTime()
{
Hashtable h=(Hashtable)Cache["online"];
if(h!=null)
{
((ArrayList)h[Session.SessionID])[1]=DateTime.Now;
}
Cache["Online"]=h;
}
/// <summary>
/// 在跟踪里输出一个HashTable的所有元素,在下面的OnInit方法里调用.以便方便的观察缓存数据
/// </summary>
/// <param name="myList"></param>
private void TraceValues( Hashtable myList)
{
IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
int i=0;
while ( myEnumerator.MoveNext() )
{
Context.Trace.Write( "onlineSessionID"+i, myEnumerator.Key.ToString());
ArrayList al=(ArrayList)myEnumerator.Value;
Context.Trace.Write( "onlineName"+i, al[0].ToString());
Context.Trace.Write( "onlineTime"+i,al[1].ToString());
TimeSpan ts=System.DateTime.Now.Subtract(Convert.ToDateTime(al[1].ToString()));
Context.Trace.Write("当前的时间和此登陆时间间隔的秒数",ts.TotalSeconds.ToString());
i++;
}
}

/// <summary>
/// 弹出信息并返回到指定页
/// </summary>
/// <param name="msg">弹出的消息</param>
/// <param name="url">指定转向的页面</param>
protected void Alert(string msg,string url)
{
string scriptString = "<script language=JavaScript>alert(""+msg+"");location.href=""+url+""</script>";
if(!this.IsStartupScriptRegistered("alert"))
this.RegisterStartupScript("alert", scriptString);
}
/// <summary>
/// 为了防止常时间不刷新页面造成会话超时,这里写一段脚本,每隔一分钟向本页发送一个请求以维持会话不被超时,这里用的是xmlhttp的无刷新请求
/// 这个方法也在下面的OnInit方法里调用
/// </summary>
protected void XmlReLoad()
{
System.Text.StringBuilder htmlstr=new System.Text.StringBuilder();
htmlstr.Append("<SCRIPT LANGUAGE="JavaScript">");
htmlstr.Append("function GetMessage(){");
htmlstr.Append(" var xh=new ActiveXObject("Microsoft.XMLHTTP");");
htmlstr.Append(" xh.open("get",window.location,false);");
htmlstr.Append(" xh.send();");
htmlstr.Append(" window.setTimeout("GetMessage()",60000);");
htmlstr.Append("}");
htmlstr.Append("window.onload=GetMessage();");
htmlstr.Append("</SCRIPT> ");
if(!this.IsStartupScriptRegistered("xmlreload"))
this.RegisterStartupScript("alert", htmlstr.ToString());
}

override protected void OnInit(EventArgs e)
{
base.OnInit(e);
this.PreventSessionTimeout();
this.UpdateCacheTime();
this.XmlReLoad();
if(this.Cache["online"]!=null)
{
this.TraceValues((System.Collections.Hashtable)Cache["online"]);

}
}
}

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

namespace oa.cls
{
/// <summary>
/// MyException 的摘要说明。
/// </summary>
public class MyException:ApplicationException
{

/// <summary>
/// 构造函数
/// </summary>
public MyException():base()
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ErrMessage">异常消息</param>
public MyException(string Message):base(Message)
{
System.Web.HttpContext.Current.Response.Redirect("~/ShowErr.aspx?msg="+Message);
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="Message">异常消息</param>
/// <param name="InnerException">引起该异常的异常类</param>
public MyException(string Message,Exception InnerException):base(Message,InnerException)
{
}
}
}

Ⅱ Network和Web的区别是什么

network Programming 和 web programming分别是什么意思
To understand the difference between the two "programming"s, you should under the difference between "network" and "web" first.

In computer science, network is the mechanism of or media for information transmission, exchanging, or a group of computers and devices connected for such purposes. The objective of network programming is to fulfill these purposes. It is more related to signal, hardware, message, etc. For example, telephone switching system, wireless network communication, etc., are all the tasks of network programming.

Web programming, on the other hand, is on a more abstract level. Its mechanism is based on that of the network programming. In web programming, you never worry about how this device talks to that device, how should the talk be taken on so as to not lose information or to avoid interruption of trasmission and so on. The purpose of web programming is to accomplish such missions as doing tasks usually done only on your computer in an online way. For example, an online bank, web seminar, BaiDu Hi, they all are web programming.

In a word, what you see and use everyday on the Internet, and how and in what presentation form they are shown on your computer, are the targets of web programming, while how the content you see and use is transmitted on the network and to your computer is the task of network programming.

Ⅲ “WEB”和“OL”分别是什么意思

含义一,OL即Office Lady,可译称“白领女性”、“办公室小姐”(低俗译法)。常见的用语有:OL一族,OL时装等。有人将OL领会成Office Love,这种人的心态可想而知,^_^。

含义二,OL即Ollie,意思是遇到障碍物时跃起,是滑板运动的一个基本动作。

含义三,OL好像还有OK的意思,春节晚会的相声中曾提到过

含义四,OL即Online,通常指游戏网络版,就是说网络游戏(简称“网游”)。常见的说法有“希望OL”、“仙剑OL”等。 Web 是一种体系结构,通过它可以访问遍布于Internet主机上的链接文档。Web 是Internet提供的一种服务;是存储在全世界Internet计算机中的数量巨大的文档的集合;Web 上海量的信息是由彼此关联的文档组成,这些文档称为主页(Home Page)或页面(Page),它是一种超文本(Hypertext)信息,而使其连接在一起的是超链接(Hyperlink)。

最常用的应用有:Internet

Ⅳ tableau online怎么用

在tableau online使用的过程中,需要创建和发布数据模型(数据源)并使其保持最新。

通过直接连接到数据发布到tableau online

使用直接连接时,无需发布数据提取或刷新任务。工作簿将始终显示最新数据。

  • Google BigQuery 或 Amazon Redshift 数据。

  • Web 服务(例如,Amazon RDS、Microsoft sql Azure 或类似服务)上托管的 MySQL、PostgreSQL 和 SQL Server 数据。

发布和刷新数据提取

具体的内容的话,您可以去查看下教程,使用步骤还是挺清楚的。

Ⅳ wamp online什么意思

WAMP是Windows下的Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

Ⅵ web 在线编辑office软件有哪些

需求是原生的Office(比如Word)在线编辑吗?
一般来说两种途径。一种是利用插件,比如PageOffice。好处是服务端有一整套的开发接口,劣势是需要安装插件,客户端需要有Word等Office应用程序安装,不同的客户端环境不同可能造成后继使用过程中的维护量。
还有一种是无插件的方式,Office 365就是典型的,不过如果是私有化部署,就不能用Office 365了。
还有一个是uzer.me,能提供无插件的原生Office编辑,提供JS SDK和REST API,各种编程语言都能对接。好处是无插件,劣势是只支持webRTC的浏览器,比如火狐、谷歌,360极速等,反正IE是不支持的。

Ⅶ 有关日本webmoney的事,是否能加你qq详谈!

完全可以,姐,加我就是了,无有网络,你可以上我公司网站上看下。
无有网络,150台机子的工作室,专业的日服RMT游戏币交易平台,拥有对日销售平台以及对应的一整套营销网络。
无有网络,运营包括永恒aion,战记DNF,天堂2,81keys,ailaonline等近40款日服网络游戏,同时经营类似WM卡,CD-key的配套服务,绝对是你的最佳合作伙伴。
等你加我。
评最佳吧。

Ⅷ 三国杀OnlineWEB版 和 三国杀Online 有什么区别

一个使用客户端进行游戏。
一个直接在网页进行游戏。
连接的都是1个服务器
用网页游戏 游戏速度比较慢 但不需要下载
用客户端游戏 延迟小 但要下载

Ⅸ 什么是 Visual Studio Online

Visual Studio Online,是微软提供的项目数据在云中的主页。在微软的云基础架构中运行,无需安装或配置任何服务器。设置一个包含一切的环境,从托管 Git 存储库和项目跟踪工具到持续集成和 IDE,全都封装在一个月度每用户计划中。并且支持更多开发工具(如 Visual Studio、Eclipse 或 Xcode)连接到云中的项目。
软件发布
微软发布Visual Studio 2013与VS Online
微软在Visual Studio线上发布会上正式揭开了Visual Studio 2013的面纱[1] ,同时还公布了Visual Studio Online。两个版本都强调了微软对于云端的承诺,给开发人员提供了新的工具选择,以便他们创建同时面向桌面和云端环境的应用和服务。该套件还做出了许多重要补充和改进,包括在云端调试Azure站点的能力。
对于开发团队来说,Visual Studio 2013新的协作功能可以更轻松地耿总代码的变动,而个人也能够受益于"直接从编辑器中查看代码细节"的选项。通过应用商店,人们可以比以往任何时候都要更轻松地制作和部署应用,而新的版本管理功能亦支持通过云端自动部署和升级。
Visual Studio Online无疑也是一大亮点,它包含Azure托管的开发服务,如托管源代码控制、工作项目追踪、协作和构建服务——这些都是公开预览的。
Visual Studio Online能够与桌面端的Visual Studio IDE(集成开发环境)相配合,并且包括一个名为"Monaco"的轻量级编码环境(基于Web),其服务是基于标准的HTML和JavaScript而构建的。转化能力使得开发人员可以通过云端、在任何地方实时编辑在线应用。
不超过5人的团队可以免费试用Visual Studio Online,这为Windows平台的小型开发团队消除了障碍。
微软开发部门全球副总裁Soma Somasegar在其博客上公布了完整的细节,此外还谈到了微软与Xamarin之间的合作——这使得多平台的开发(包括iOS和Android)变得更为容易。
此外,微软今天还发布了Visual Studio 2012 Update 4,除bug修复和增强外,改进了VS 2012与Visual Studio Online之间的兼容性。