• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.net的登录验证方法Web.config访问权限配置

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一开始看到有人写FormsAuthentication,FORM验证。我就不太明白。因为我把验证和授权搞混了。

他们在做的时候System.Security.Principal.IIdentity 用来授权做当前用户的标识对象。

我把他们混为一起了。很难去区分。

现在明白点了。 FORM验证就是WEB.config 设置

<authentication mode="Forms">

<forms loginUrl="Login.aspx" name=".ASPXAUTH"></forms>

</authentication>

然后 再 放入

   FormsAuthentication.SetAuthCookie(username, false);//创建用户标识,不跨浏览器操作

用的时候从取出来Username就可以了。

Context.User.Identity.Name.ToString();

 当使用其中的一种来验证当前用户并通过时,必然要在服务器及客户端之间保存一种“验证票据”来保存验证信息。.NET提供类似于IIdentity的接口来完成该功能。请注意,context.user是IPrincipal(用户对象)类型接口,而identity是IIdentity(标志对象)类型的接口。

有四种类FormsIdentity GenericIdentity PassportIdentity WindowsIdentity实现了IIdentity接口。这几种类对应于.NET的几种验证模式。以上也差不多是废话,只是说了一下。 不过,请楼主看一下以上说的, 再对MSDN里查找一下ASP.NET的Forms验证的文章。看一下在forms验证时对FormsIdentity类的使用,有些信息保存到FormsIdentity类的实例里,在使用的时候就可以context.user.identity.name提取出来。

 你可以用自己的类放到user.Identity中。Context.User.Identity.Name的意思是当前用户的名字。可以放你任何想要的东西。不过放的时候要注意,可以用一下代码: 

  HttpContext.Current.User   =  new   GenericPrincipal(object,  “”);  

  object是你自己定义的类。

——————————————————————————

System.Security.Principal 命名空间

IPrincipal 定义用户对象的基本功能。

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

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

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

创建 GenericPrincipal 对象

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

    Visual Basic  复制代码
    Dim MyIdentity As New GenericIdentity("MyUser")
    C#  复制代码
    GenericIdentity MyIdentity = new GenericIdentity("MyUser");
  2. 创建 GenericPrincipal 类的一个新实例,并用先前创建的 GenericIdentity 对象和表示希望与此主体关联的角色的字符串数组对其进行初始化。下面的代码示例指定表示一个管理员角色和一个用户角色的字符串数组。然后用前面的 GenericIdentity 和该字符串数组对 GenericPrincipal 进行初始化。

    Visual Basic  复制代码
    Dim MyStringArray As String() = {"Manager", "Teller"}
    DIm MyPrincipal As New GenericPrincipal(MyIdentity, MyStringArray)
    C#  复制代码
    String[] MyStringArray = {"Manager", "Teller"};
    GenericPrincipal MyPrincipal = new GenericPrincipal(MyIdentity, MyStringArray);
  3. 使用以下代码将主体附加到当前线程中。这在以下几种情形中很有用:必须对主体进行多次验证,必须通过应用程序中运行的其他代码对主体进行验证,或必须由 对象对主题进行验证。不将主体附加到线程中,仍可对主体对象执行基于角色的验证。有关更多信息,请参见

    Visual Basic  复制代码
     
    C#  复制代码
    Thread.CurrentPrincipal = MyPrincipal


 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET页面之间传值的五种常用方法发布时间:2022-07-10
下一篇:
[翻译]ASP.NETMVCTip#11–使用标准的控制器操作名称发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap