首页 > 新闻系统 > 网络编程 > Asp.Net > 文章正文

ASP.NET2.0应用中定制安全凭证之理论篇

2005-12-27 11:09:40 来源:天极yesky 作者: 点击:



Membership.ApplicationName = "MyApp";
Membership.CreateUser("MyUser","MyPassword",...);

   Roles类允许你创建和删除用户角色,从角色中添加或删除用户,检索用户的角色会员信息以及验证角色会员。下面是该类的定义:

public static class Roles{
  public static string ApplicationName{get;set;}
  public static void CreateRole(string roleName);
  public static bool DeleteRole(string roleName, bool throwOnPopulatedRole);
  public static void AddUserToRole(string username, string roleName);
  public static void RemoveUserFromRole(string username, string roleName);
  public static string[] GetAllRoles();
  public static string[] GetRolesForUser(string username);
  public static string[] GetUsersInRole(string roleName);
  public static bool IsUserInRole(string username, string roleName);
  //其它成员
}

   例如,要把角色"Manager"添加到应用程序"MyApp"上,你可以如下编码:

Roles.ApplicationName = "MyApp";
Roles.CreateRole("Manager");

二、管理凭证存储

  如果你选择使用Windows或活动目录来存储你的应用程序的用户和角色,那么你需要使用相应于这些存储的工具来管理,例如计算机控制面板小程序或活动目录工具。其实,真正的问题在于如何管理存储在SQL Server中的凭证。为此,你可以使用Visual Studio 2005和一个Web浏览器,甚至不需要安装IIS。在一ASP.NET Web工程中,从"Website"菜单下选择"ASP.NET配置"。这将使得Visual Studio宿主一个Web服务器,打开一可用的端口并且导航到一套管理页面(见图2)。这些管理页面修改该Web应用程序配置文件并且也可以管理凭证存储(当不选择Windows认证时)。当使用Visual Studio 2005时,你首先需要选择认证类型。你可以选择Windows或表单认证(互联网存取)。如果你选择表单认证,你还可以执行下列操作:

   ·启动或取消基于角色的安全

   ·创建和删除角色

   ·创建和删除用户

   ·检索一用户的细节

   ·设置一用户的状态

   ·给用户赋于某角色

   ·从角色中删除用户

ASP.NET2.0应用中定制安全凭证之理论篇(2)
图2.ASP.NET Web应用程序管理页面

   既然SQL Server是ASP.NET 2.0提供的唯一的企业级定制凭证存储,你可以单独使用Visual Studio 2005驱动的管理页面来管理aspnetdb数据库,而不用任何其它存储。

   三、内置功能的不足

   对于Visual Studio 2005驱动的管理页面存在一些重要缺点:第一,你需要Visual Studio 2005。应用程序或系统超级用户可能没有Visual Studio 2005,更不用说如何使用它了。缺省地,该管理页面使用一斜杠(/)来管理应用程序命名,并且没提供任何修改方法。第二,不可能存在远程存取-应用程序和Visual Studio 2005必须共存,这样Visual Studio 2005才能存取应用程序的配置文件。第三,基于浏览器的用户接口也不很友好-你需要不断点击Back按钮,而且用户接口反映相当迟钝。另外,许多超级用户可能想使用的特征无法经由页面管理来实现,这就脱离了底层提供者类所支持的特性这一事实。这种方式还不能实现的方面有:

   ·更新大多数用户帐户细节

   ·检索、改变、重置一用户的口令

   ·检索当前在线用户数目信息

   ·能够从一次操作的一个角色中删除全部用户

   ·检索关于口令管理策略(例如长度、重置策略、口令类型等)的信息

   ·测试用户凭证

   ·验证用户角色身份

   而且,还有其它的超级用户可能想要的特征也得不到支持。这些特征包括能够检索数据库所有应用程序列表,能够从一应用程序中删除所有的用户,能够从一应用程序中删除所有的角色,能够删除一应用程序(和它的所有相联系的用户和角色),能够删除所有的应用程序。总之,尽管ASP.NET 2.0提供了一个第一流的全面的凭证管理,然而它仅提供了一些原始的管理选项,一般的实际超级用户是不会使用它的。
9 7 3 1 2 3 4 8 :

精彩推荐
本类热门文章

论坛美图

本周软件下载排行

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203