Guest User

Untitled

a guest
Apr 13th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Web.Security;
  6. using System.Configuration;
  7. using System.Configuration.Provider;
  8.  
  9. namespace Research.Web.Security
  10. {
  11. public class MixedMembershipProvider : ActiveDirectoryMembershipProvider
  12. {
  13. protected String SqlConnectionString { get; private set; }
  14.  
  15. private String GetConnectionString(String connectionStringName)
  16. {
  17. if (string.IsNullOrEmpty(connectionStringName))
  18. throw new ProviderException("ConnectionStringName must be specified.");
  19.  
  20. ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings[connectionStringName];
  21. if (settings == null)
  22. {
  23. throw new ProviderException(String.Format("Connection string {0} not found.", connectionStringName));
  24. }
  25. return settings.ConnectionString;
  26. }
  27.  
  28. public override void Initialize(String name, System.Collections.Specialized.NameValueCollection config)
  29. {
  30. this.SqlConnectionString = GetConnectionString(config["sqlConnectionStringName"]);
  31. config.Remove("sqlConnectionStringName");
  32.  
  33. base.Initialize(name, config);
  34. }
  35.  
  36. public override Boolean ValidateUser(String username, String password)
  37. {
  38. if (!base.ValidateUser(username, password)) // validate using AD first
  39. {
  40. return ValidateUserSql(username, password); // if not in AD, check SQL
  41. }
  42. else
  43. {
  44. return true;
  45. }
  46. }
  47.  
  48. private Boolean ValidateUserSql(String username, String password)
  49. {
  50. // look up your account in SQL here
  51. return true;
  52. }
  53. }
  54. }
  55.  
  56. <configuration>
  57. <!-- usual config stuff omitted -->
  58. <connectionStrings>
  59. <add name="SqlDefault" connectionString="Server=localhost;database=mydatabase;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  60. <add name="ActiveDirectoryDefault" connectionString="LDAP://mydomain.com/DC=mydomain,DC=com" />
  61. </connectionStrings>
  62.  
  63. <system.web>
  64. <!-- usual config stuff omitted -->
  65. <membership defaultProvider="Mixed">
  66. <providers>
  67. <clear/>
  68. <add name="Mixed"
  69. type="Research.Web.Security.MixedMembershipProvider, Research.Web"
  70. applicationName="/"
  71. connectionStringName="ActiveDirectoryDefault"
  72. sqlConnectionStringName="SqlDefault"
  73. connectionUsername="mydomainmyadmin"
  74. connectionPassword="mypass"/>
  75. </providers>
  76. </membership>
  77. <!--- usual config stuff omitted -->
  78. </system.web>
  79. </configuration>
Add Comment
Please, Sign In to add comment