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

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命名空间

IPrincipal定义用户对象的基本功能。
用户对象表示用户的安全上下文,代码当前即以该用户的名义运行,包括用户的标识(IIdentity)和它们所属的任何角色。

所有用户对象都需要实现IPrincipal接口。

IIdentity定义标识对象的基本功能。

创建GenericPrincipal对象

创建标识类的一个新实例,并用希望它持有的名称对其进行初始化。以下代码创建一个新的GenericIdentity对象,并用名称MyUser对其进行初始化。

VisualBasic
复制代码
DimMyIdentityAsNewGenericIdentity("MyUser")

C#
复制代码
GenericIdentityMyIdentity=newGenericIdentity("MyUser");

创建GenericPrincipal类的一个新实例,并用先前创建的GenericIdentity对象和表示希望与此主体关联的角色的字符串数组对其进行初始化。下面的代码示例指定表示一个管理员角色和一个用户角色的字符串数组。然后用前面的GenericIdentity和该字符串数组对GenericPrincipal进行初始化。

VisualBasic
复制代码
DimMyStringArrayAsString()={"Manager","Teller"}
DImMyPrincipalAsNewGenericPrincipal(MyIdentity,MyStringArray)

C#复制代码
String[]MyStringArray={"Manager","Teller"};
GenericPrincipalMyPrincipal=newGenericPrincipal(MyIdentity,MyStringArray);

使用以下代码将主体附加到当前线程中。这在以下几种情形中很有用:必须对主体进行多次验证,必须通过应用程序中运行的其他代码对主体进行验证,或必须由PrincipalPermission对象对主题进行验证。不将主体附加到线程中,仍可对主体对象执行基于角色的验证。有关更多信息,请参见替换主体对象。

VisualBasic复制代码

C#复制代码
Thread.CurrentPrincipal=MyPrincipal

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐