2011-08-03 14 views
0

ログインページのセキュアページのアクセスロールのリストをどのように取得できますか?セキュアページの役割のリストを取得

+0

組み込みのSQL MemberShipまたは自作システムを使用していますか? – sll

+0

私はカスタムメンバーシッププロバイダを使用しています。自作 – christo

+0

データ、データベースをどこに保存したいですか? – sll

答えて

1
 // Parse original url 
     var originalUrl = FormsAuthentication.GetRedirectUrl(User.Identity.Name, false); 
     var originalUrlArray = originalUrl.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); 

     var pathToWebConfig = "~"; 
     for (int i = 0; i < originalUrlArray.Length - 1; i++) { 
      pathToWebConfig += "/" + originalUrlArray[i]; 
     } 

     var locationName = originalUrlArray[originalUrlArray.Length - 1]; 

     // Get web config 
     var remoteWebConfig = (System.Configuration.Configuration)WebConfigurationManager.OpenWebConfiguration(pathToWebConfig); 

     // Find authorization section 
     AuthorizationSection authorizationSection = new AuthorizationSection(); 
     foreach (ConfigurationLocation location in remoteWebConfig.Locations) { 
      if (location.Path.Equals(locationName)) { 
       authorizationSection = (AuthorizationSection)location.OpenConfiguration().GetSection("system.web/authorization"); 
       break; 
      } 
     } 

     // Get roles 
     var listOfRoles = new List<string>(); 
     foreach (AuthorizationRule rule in authorizationSection.Rules) { 
      if (rule.Action != AuthorizationRuleAction.Allow) { 
       continue; 
      } 

      foreach (var role in rule.Roles) { 
       listOfRoles.Add(role); 
      } 
     } 
関連する問題