Asp.net的登录验证方法Web.config访问权限配置
2011-05-31 10:43
961 查看
一开始看到有人写FormsAuthentication,FORM验证。我就不太明白。因为我把验证和授权搞混了。
他们在做的时候System.Security.Principal.IIdentity用来授权做当前用户的标识对象。
我把他们混为一起了。很难去区分。
现在明白点了。FORM验证就是WEB.config设置
<authenticationmode="Forms">
<formsloginUrl="Login.aspx"name=".ASPXAUTH"></forms>
</authentication>
然后再放入
FormsAuthentication.SetAuthCookie(username,false);//创建用户标识,不跨浏览器操作
用的时候从取出来Username就可以了。
Context.User.Identity.Name.ToString();
当使用其中的一种来验证当前用户并通过时,必然要在服务器及客户端之间保存一种“验证票据”来保存验证信息。.NET提供类似于IIdentity的接口来完成该功能。请注意,context.user是IPrincipal(用户对象)类型接口,而identity是IIdentity(标志对象)类型的接口。
有四种类FormsIdentityGenericIdentityPassportIdentityWindowsIdentity实现了IIdentity接口。这几种类对应于.NET的几种验证模式。以上也差不多是废话,只是说了一下。不过,请楼主看一下以上说的,再对MSDN里查找一下ASP.NET的Forms验证的文章。看一下在forms验证时对FormsIdentity类的使用,有些信息保存到FormsIdentity类的实例里,在使用的时候就可以context.user.identity.name提取出来。
你可以用自己的类放到user.Identity中。Context.User.Identity.Name的意思是当前用户的名字。可以放你任何想要的东西。不过放的时候要注意,可以用一下代码:
HttpContext.Current.User=newGenericPrincipal(object,“”);
object是你自己定义的类。
——————————————————————————
System.Security.Principal命名空间
用户对象表示用户的安全上下文,代码当前即以该用户的名义运行,包括用户的标识(IIdentity)和它们所属的任何角色。
所有用户对象都需要实现IPrincipal接口。
创建GenericPrincipal类的一个新实例,并用先前创建的GenericIdentity对象和表示希望与此主体关联的角色的字符串数组对其进行初始化。下面的代码示例指定表示一个管理员角色和一个用户角色的字符串数组。然后用前面的GenericIdentity和该字符串数组对GenericPrincipal进行初始化。
使用以下代码将主体附加到当前线程中。这在以下几种情形中很有用:必须对主体进行多次验证,必须通过应用程序中运行的其他代码对主体进行验证,或必须由PrincipalPermission对象对主题进行验证。不将主体附加到线程中,仍可对主体对象执行基于角色的验证。有关更多信息,请参见替换主体对象。
他们在做的时候System.Security.Principal.IIdentity用来授权做当前用户的标识对象。
我把他们混为一起了。很难去区分。
现在明白点了。FORM验证就是WEB.config设置
然后再放入
FormsAuthentication.SetAuthCookie(username,false);//创建用户标识,不跨浏览器操作
用的时候从取出来Username就可以了。
当使用其中的一种来验证当前用户并通过时,必然要在服务器及客户端之间保存一种“验证票据”来保存验证信息。.NET提供类似于IIdentity的接口来完成该功能。请注意,context.user是IPrincipal(用户对象)类型接口,而identity是IIdentity(标志对象)类型的接口。
有四种类FormsIdentityGenericIdentityPassportIdentityWindowsIdentity实现了IIdentity接口。这几种类对应于.NET的几种验证模式。以上也差不多是废话,只是说了一下。不过,请楼主看一下以上说的,再对MSDN里查找一下ASP.NET的Forms验证的文章。看一下在forms验证时对FormsIdentity类的使用,有些信息保存到FormsIdentity类的实例里,在使用的时候就可以context.user.identity.name提取出来。
你可以用自己的类放到user.Identity中。Context.User.Identity.Name的意思是当前用户的名字。可以放你任何想要的东西。不过放的时候要注意,可以用一下代码:
HttpContext.Current.User=newGenericPrincipal(object,“”);
object是你自己定义的类。
——————————————————————————
System.Security.Principal命名空间
定义用户对象的基本功能。 |
所有用户对象都需要实现IPrincipal接口。
定义标识对象的基本功能。 |
创建GenericPrincipal对象
创建标识类的一个新实例,并用希望它持有的名称对其进行初始化。以下代码创建一个新的GenericIdentity对象,并用名称MyUser对其进行初始化。VisualBasic | 复制代码 |
---|---|
DimMyIdentityAsNewGenericIdentity("MyUser") |
C# | 复制代码 |
---|---|
GenericIdentityMyIdentity=newGenericIdentity("MyUser"); |
VisualBasic | 复制代码 |
---|---|
DimMyStringArrayAsString()={"Manager","Teller"} DImMyPrincipalAsNewGenericPrincipal(MyIdentity,MyStringArray) |
C# | 复制代码 |
---|---|
String[]MyStringArray={"Manager","Teller"}; GenericPrincipalMyPrincipal=newGenericPrincipal(MyIdentity,MyStringArray); |
VisualBasic | 复制代码 |
---|---|
C# | 复制代码 |
---|---|
Thread.CurrentPrincipal=MyPrincipal |
相关文章推荐
- Asp.net的登录验证方法Web.config访问权限配置
- Asp.net的登录验证方法Web.config访问权限配置
- asp.net的登录验证方法 Web.config 的作用范围 拒绝与巧用允许 访问权限
- asp.net的登录验证方法 Web.config 的作用范围 拒绝与巧用允许 访问权限
- asp.net的登录验证方法 Web.config 的作用范围 配置
- asp.net项目中通过Web.config配置文件及文件夹的访问权限---forms
- asp.net项目中通过Web.config配置文件及文件夹的访问权限!
- web.config 限定访问权限 Asp.net的身份验证有有三种
- web.config 限定访问权限 Asp.net的身份验证有有三种
- web.config 限定访问权限 Asp.net的身份验证有有三种
- asp.net项目中通过Web.config配置文件及文件夹的访问权限!
- asp.net项目中通过Web.config配置文件及文件夹的访问权限!
- asp.net项目中通过Web.config配置文件及文件夹的访问权限!
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
- 关于ASP.NET C#配置Web.config的方法及读取方法
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
- ASP.NET通过配置Web.config文件提高手动绑定数据库效率的一个简单方法,不用每次手动连接数据库地址,或者数据库地址变更时只改一处即可。
- asp.net继承page类重写方法 实现最基本的用户登录验证 权限验证等
- [转]ASP.NET Web.config配置文件的基本使用方法
- ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法