您的位置:首页 > 编程语言 > ASP

开发日志:使用Asp.Net中的"Forms"验证方式,操作用户权限

2010-03-01 18:17 1071 查看
一、web.config设置

<machineKey validationKey="DD305F238C8F26103323F10B1A655ED9FA7DBB7A" decryptionKey="70DE128000E565A7F8441A4C091C11EC8C5BB9B4D4EDA7A1" validation="SHA1"/>
<authentication mode="Forms">
<forms name="SKAPP.ASPXAUTH" loginUrl="~/login.aspx" protection="All" timeout="10" path="/"/>
</authentication>


1、authentication

作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。<authentication> 元素必需与<authorization> 节配合使用。

示例:

以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。

<authentication mode="Forms" >
<forms loginUrl="logon.aspx" name=".FormsAuthCookie"/>

</authentication>

其中元素loginUrl表示登陆网页的名称,name表示Cookie名称。

2、machineKey

作用:元素对密钥进行配置,以便将其用于对 Forms 身份验证 Cookie 数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证

属性

属性 说明
decryption

可选的 String 属性。

指定用于对数据进行解密的哈希算法的类型。

此属性可以为下列可能值之一。

说明
Auto

指定 ASP.NET 基于配置的默认设置来确定使用哪个解密算法。这是默认值。

AES

指定 ASP.NET 使用 AES (Rijndael) 算法来对数据进行解密。AES 是用于对数据进行解密的默认算法。

3DES

指定 ASP.NET 使用 TripleDES 算法来对数据进行解密。TripleDES (3DES) 算法使用 DES 算法的三次连续迭代。

此属性是 .NET Framework 2.0 版中的新属性。

默认值为 "Auto"

decryptionKey

必选的 String 属性。

指定用于对数据进行加密和解密的密钥或者生成该密钥的进程。当 validation 设置为 TripleDES 字段时,该属性用于 Forms 身份验证加密和解密以及视图状态加密。

如果向此属性添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。IsolateApps 也是默认值的一部分。

如果您需要在 Web 服务器网络(网络场)中支持配置,请手动设置此属性以确保配置保持一致。

此属性可以为下列可能值之一。

说明
AutoGenerate

指定 ASP.NET 生成随机密钥并将其存储在 LSA 中。该值是默认值。如果向 decryptionKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

value

指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES 加密时,密钥长度应该为 16 个字符;而使用三重 DES (3 DES) 加密时,密钥长度应该为 48 个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 RNGCryptoServiceProvider 类)来创建这些密钥。只有在计算机使用 128 位加密的情况下,ASP.NET 才能使用三重 DES。如果向 decryptionKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

默认值为 "AutoGenerate,IsolateApps"

validation

必选的 MachineKeyValidation 属性。

指定用来验证数据的加密类型。

此属性可以为下列可能值之一。

说明
AES

指定 ASP.NET 使用 AES (Rijndael) 算法来对数据进行解密。AES 是用于对数据进行解密的默认算法。

MD5

指定 ASP.NET 使用 Message Digest 5 (MD5) 哈希算法。此算法的性能比 SHA1 好。

SHA1

指定 ASP.NET 使用 SHA1 哈希算法。使用此算法可增强安全性。

该值是默认值。

TripleDES

指定 ASP.NET 使用 TripleDES 算法来对数据进行解密。TripleDES 算法使用 DES 算法的三次连续迭代。

在 .NET Framework 1.0 和 1.1 版中,该值为 "3DES"

默认值为 "SHA1"

validationKey

必选的 String 属性。

指定用于验证加密数据的密钥。当 enableViewStateMACtrue 时,validationKey 用于创建消息身份验证代码 (MAC),以确保视图状态未被篡改。validationKey 还可用于生成进程外、应用程序特定的会话 ID,以确保每个会话具有独立的会话状态变量。

如果向 ValidationKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。IsolateApps 也是默认值的一部分。

如果您需要在 Web 服务器网络(网络场)中支持配置,请手动设置 ValidationKey 属性以确保配置保持一致。

validationKey 属性可以为下列可能值之一。

说明
AutoGenerate

指定 ASP.NET 生成随机密钥并将其存储在 LSA 中。此选项是默认值。如果向 validationKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

value

指定一个手动分配的密钥。该值必须手动设置为十六进制字符串,以确保配置在整个网络场中保持一致。使用 DES 加密时,密钥长度应该为 16 个字符;而使用三重 DES 加密时,密钥长度应该为 48 个字符。如果要使用长度小于最大长度的密钥,则应通过真正的随机方式(例如,通过使用 CryptographyRNGCryptoServiceProvider 类)来创建这些密钥。只有在计算机使用 128 位加密的情况下,ASP.NET 才能使用三重 DES。如果向 validationKey 值添加 IsolateApps 修饰符,ASP.NET 将使用每个应用程序的应用程序 ID 为每个应用程序生成一个唯一的加密密钥。

默认值为 "AutoGenerate,IsolateApps"

二、记录用户信息

代码

if(HttpContext.Current.User.Identity.IsAuthenticated)//用户是否通过验证
{
string[] parts = HttpContext.Current.User.Identity.Name.Split(';');//返回记录的用户信息
return Convert.ToInt32(parts[0]);
}
else
return null;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐