需要得到的效果:
**********************************************************************************************
匿名用户即可访问,有浏览部分页面的权限,当用户登陆后才有提交/下载等权限。 用asp.NET实现。其实C#/VB等的实现方法是相同的,只是在功能代码部分略为有些语法上才差异,这里主要讲的是C#的。
**********************************************************************************************
实现:
配置文件:Web.config中的最重要的部分:
<authentication mode="Forms">
<forms name=".Kaersoft_FD_COOKIE" loginUrl="Logon.aspx"
protection="All" timeout="30">
</forms>
</authentication>
<authorization>
<allow users="*" /> <!-- 允许所有用户 -->
</authorization> 只需在Browers.aspx的Page_Load(object sender, System.EventArgs e)中加入如下代码(用于判断如果用户未登陆(User.Identity.Name==""),则重定向到登陆页面,并保存当前的页面URL到Session["ForwardPage"]):
if (User.Identity.Name=="")
{
this.Response.Redirect("Logon.aspx");
}
**********************************************************************************************
session的有关参考文献:
为当前应用程序配置会话状态设置。 <configuration>
<system.web>
<sessionState> <sessionState mode="Off|InProc|StateServer|SQLServer"
cookieless="true|false"
timeout="number of minutes"
stateConnectionString="tcpip=server:port"
sqlConnectionString="sql connection string"
stateNetworkTimeout="number of seconds"/>
必选属性
属性 选项 说明
mode 指定在哪里存储会话状态。
Off 指示会话状态未启用。
InProc 指示在本地存储会话状态。
StateServer 指示在远程计算机上存储会话状态。
SQLServer 指示在 SQL Server 上存储会话状态。 可选属性
属性 选项 说明
cookieless 指定不具有 Cookie 的会话是否应用于标识客户端会话。
true 指示应使用不具有 Cookie 的会话。
false 指示不应使用没有 Cookie 的会话。默认值为 false。
timeout 指定在放弃一个会话前该会话可以处于空闲状态的分钟数。默认值为 20。
stateConnectionString 指定远程存储会话状态的服务器名称和端口。例如“tcpip=127.0.0.1:42424”。当 mode 为 StateServer 时该属性是必需的。
sqlConnectionString 为 SQL Server 指定连接字符串。例如“data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind”。当 mode 为 SQLServer 时该属性是必需的。
stateNetworkTimeout 在使用 StateServer 模式存储会话状态时,指定在放弃会话之前 Web 服务器和状态服务器之间的 TCP/IP 网络连接空闲的时间(以秒为单位)。默认值为 10。 备注
使用 StateServer 模式 确保 ASP.NET 状态服务正在将用于存储会话状态信息的远程服务器上运行。该服务与 ASP.NET 一起安装,其默认位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version\aspnet_state.exe。
在应用程序的 Web.config 文件中,设置 mode=StateServer 并设置 stateConnectionString 属性。例如,stateConnectionString="tcpip=sarath:42424"。
使用 SQLServer 模式 在运行 SQL Server 的计算机(它将存储会话状态)上运行 InstallSqlState.sql(默认的安装位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version)。这将创建一个名为 ASPState 的数据库,该数据库具有新的存储过程并且在 TempDB 数据库中具有 ASPStateTempApplications 表和 ASPStateTempSessions 表。
在应用程序的 Web.config 文件中,设置 mode=SQLServer 并设置 sqlConnectionString 属性。例如,sqlConnectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。
示例
以下示例指定若干会话状态配置设置。 <configuration>
<system.web>
<sessionState mode="InProc"
cookieless="true"
timeout="20"/>
</sessionState>
</system.web>
</configuration>
**********************************************************************************************
身份验证的有关参考文献: 身份验证是从用户处获取标识凭据(如用户名和密码)并通过某些授权机构验证那些凭据的过程。如果这些凭据有效,则提交这些凭据的实体被视为已通过身份验证。在身份得到验证后,授权进程将确定该身份是否可以访问给定资源。 ASP.NET 通过身份验证提供程序(即包含验证请求方凭据所需代码的代码模块)来实现身份验证。ASP.NET 支持下表中描述的身份验证提供程序。 ASP.NET 身份验证提供程序 说明
Forms 身份验证 一种系统,通过该系统利用 HTTP 客户端重定向将未经身份验证的请求重定向到某 HTML 窗体。用户提供凭据并提交该窗体。如果应用程序对请求进行身份验证,系统会发出一个 Cookie,在其中包含用于重新获取标识的凭据或密钥。随后发出的请求在请求头中具有该 Cookie,ASP.NET 事件处理程序使用应用程序开发人员指定的任何验证方法对这些请求进行身份验证和授权。
Passport 身份验证 由 Microsoft 提供的集中身份验证服务,该服务为成员站点提供单一登录和核心配置文件服务。
Windows 身份验证 ASP.NET 同时使用 Windows 身份验证和 Microsoft Internet 信息服务 (IIS) 身份验证。IIS 以下面三种方式之一执行身份验证:基本、简要或集成 Windows 身份验证。在 IIS 身份验证完成后,ASP.NET 使用已验证的身份来授权访问。 若要为 ASP.NET 应用程序启用身份验证提供程序,只需按下文所示为应用程序配置文件创建一个项。 // Web.config file
<authentication mode= "[Windows|Forms|Passport|None]"/>
模式设置为以下身份验证模式之一:Windows、Forms、Passport 或 None。默认为 Windows。如果模式是 None,则 ASP.NET 不对请求进行任何附加身份验证 - 如果您要实现自定义身份验证方案,或者如果您只使用匿名身份验证并想得到可能的最高性能级别,此模式可能非常有用。 该身份验证模式无法在应用程序根目录以下的级别进行设置。与其他 ASP.NET 模块的情况一样,除非显式重写,否则,URL 空间中的子目录会继承身份验证模块。
**********************************************************************************************
匿名用户即可访问,有浏览部分页面的权限,当用户登陆后才有提交/下载等权限。 用asp.NET实现。其实C#/VB等的实现方法是相同的,只是在功能代码部分略为有些语法上才差异,这里主要讲的是C#的。
**********************************************************************************************
实现:
配置文件:Web.config中的最重要的部分:
<authentication mode="Forms">
<forms name=".Kaersoft_FD_COOKIE" loginUrl="Logon.aspx"
protection="All" timeout="30">
</forms>
</authentication>
<authorization>
<allow users="*" /> <!-- 允许所有用户 -->
</authorization> 只需在Browers.aspx的Page_Load(object sender, System.EventArgs e)中加入如下代码(用于判断如果用户未登陆(User.Identity.Name==""),则重定向到登陆页面,并保存当前的页面URL到Session["ForwardPage"]):
if (User.Identity.Name=="")
{
this.Response.Redirect("Logon.aspx");
}
**********************************************************************************************
session的有关参考文献:
为当前应用程序配置会话状态设置。 <configuration>
<system.web>
<sessionState> <sessionState mode="Off|InProc|StateServer|SQLServer"
cookieless="true|false"
timeout="number of minutes"
stateConnectionString="tcpip=server:port"
sqlConnectionString="sql connection string"
stateNetworkTimeout="number of seconds"/>
必选属性
属性 选项 说明
mode 指定在哪里存储会话状态。
Off 指示会话状态未启用。
InProc 指示在本地存储会话状态。
StateServer 指示在远程计算机上存储会话状态。
SQLServer 指示在 SQL Server 上存储会话状态。 可选属性
属性 选项 说明
cookieless 指定不具有 Cookie 的会话是否应用于标识客户端会话。
true 指示应使用不具有 Cookie 的会话。
false 指示不应使用没有 Cookie 的会话。默认值为 false。
timeout 指定在放弃一个会话前该会话可以处于空闲状态的分钟数。默认值为 20。
stateConnectionString 指定远程存储会话状态的服务器名称和端口。例如“tcpip=127.0.0.1:42424”。当 mode 为 StateServer 时该属性是必需的。
sqlConnectionString 为 SQL Server 指定连接字符串。例如“data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind”。当 mode 为 SQLServer 时该属性是必需的。
stateNetworkTimeout 在使用 StateServer 模式存储会话状态时,指定在放弃会话之前 Web 服务器和状态服务器之间的 TCP/IP 网络连接空闲的时间(以秒为单位)。默认值为 10。 备注
使用 StateServer 模式 确保 ASP.NET 状态服务正在将用于存储会话状态信息的远程服务器上运行。该服务与 ASP.NET 一起安装,其默认位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version\aspnet_state.exe。
在应用程序的 Web.config 文件中,设置 mode=StateServer 并设置 stateConnectionString 属性。例如,stateConnectionString="tcpip=sarath:42424"。
使用 SQLServer 模式 在运行 SQL Server 的计算机(它将存储会话状态)上运行 InstallSqlState.sql(默认的安装位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version)。这将创建一个名为 ASPState 的数据库,该数据库具有新的存储过程并且在 TempDB 数据库中具有 ASPStateTempApplications 表和 ASPStateTempSessions 表。
在应用程序的 Web.config 文件中,设置 mode=SQLServer 并设置 sqlConnectionString 属性。例如,sqlConnectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。
示例
以下示例指定若干会话状态配置设置。 <configuration>
<system.web>
<sessionState mode="InProc"
cookieless="true"
timeout="20"/>
</sessionState>
</system.web>
</configuration>
**********************************************************************************************
身份验证的有关参考文献: 身份验证是从用户处获取标识凭据(如用户名和密码)并通过某些授权机构验证那些凭据的过程。如果这些凭据有效,则提交这些凭据的实体被视为已通过身份验证。在身份得到验证后,授权进程将确定该身份是否可以访问给定资源。 ASP.NET 通过身份验证提供程序(即包含验证请求方凭据所需代码的代码模块)来实现身份验证。ASP.NET 支持下表中描述的身份验证提供程序。 ASP.NET 身份验证提供程序 说明
Forms 身份验证 一种系统,通过该系统利用 HTTP 客户端重定向将未经身份验证的请求重定向到某 HTML 窗体。用户提供凭据并提交该窗体。如果应用程序对请求进行身份验证,系统会发出一个 Cookie,在其中包含用于重新获取标识的凭据或密钥。随后发出的请求在请求头中具有该 Cookie,ASP.NET 事件处理程序使用应用程序开发人员指定的任何验证方法对这些请求进行身份验证和授权。
Passport 身份验证 由 Microsoft 提供的集中身份验证服务,该服务为成员站点提供单一登录和核心配置文件服务。
Windows 身份验证 ASP.NET 同时使用 Windows 身份验证和 Microsoft Internet 信息服务 (IIS) 身份验证。IIS 以下面三种方式之一执行身份验证:基本、简要或集成 Windows 身份验证。在 IIS 身份验证完成后,ASP.NET 使用已验证的身份来授权访问。 若要为 ASP.NET 应用程序启用身份验证提供程序,只需按下文所示为应用程序配置文件创建一个项。 // Web.config file
<authentication mode= "[Windows|Forms|Passport|None]"/>
模式设置为以下身份验证模式之一:Windows、Forms、Passport 或 None。默认为 Windows。如果模式是 None,则 ASP.NET 不对请求进行任何附加身份验证 - 如果您要实现自定义身份验证方案,或者如果您只使用匿名身份验证并想得到可能的最高性能级别,此模式可能非常有用。 该身份验证模式无法在应用程序根目录以下的级别进行设置。与其他 ASP.NET 模块的情况一样,除非显式重写,否则,URL 空间中的子目录会继承身份验证模块。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货