ASP.NET Membership + Active Directory Authientication ( Single Sign On )

 
ASP.NET Membership + Active Directory Authientication ( Single Sign On )
 
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
執行 -> aspnet_regsql.exe
 

   web.conf
 
  <?xml version="1.0"?>
 
  <configuration>
    <connectionStrings>
      <add name="ApplicationServices"
          connectionString="data source=VMSER001;initial catalog=WebTest;persist security info=True;user id=sa;password=P@ssw0rd;"
          providerName="System.Data.SqlClient" />
    </connectionStrings>
 
    <system.web>
      <authorization>
        <allow roles="Admins" />
        <deny users="*" />
      </authorization>
      <compilation debug="true" targetFramework="4.0" />
 
      <authentication>
        <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
      </authentication>
 
      <membership>
        <providers>
          <clear/>
          <add name="AspNetSqlMembershipProvider"
              type="System.Web.Security.SqlMembershipProvider"
              connectionStringName="ApplicationServices"
              enablePasswordRetrieval="false"
              enablePasswordReset="true"
              requiresQuestionAndAnswer="false"
              requiresUniqueEmail="false"
              maxInvalidPasswordAttempts="5"
              minRequiredPasswordLength="6"
              minRequiredNonalphanumericCharacters="0"
              passwordAttemptWindow="10"
              applicationName="/" />
        </providers>
      </membership>
 
      <profile>
        <providers>
          <clear/>
          <add name="AspNetSqlProfileProvider"
              type="System.Web.Profile.SqlProfileProvider"
              connectionStringName="ApplicationServices"
              applicationName="/"/>
        </providers>
      </profile>
 
      <roleManager enabled="true">
        <providers>
          <clear />
          <add connectionStringName="ApplicationServices"
              applicationName="/"
              name="AspNetSqlRoleProvider"
              type="System.Web.Security.SqlRoleProvider" />
          <add applicationName="/"
              name="AspNetWindowsTokenRoleProvider"
              type="System.Web.Security.WindowsTokenRoleProvider" />
        </providers>
      </roleManager>
 
    </system.web>
 
    … …
 
  </configuration>
 

 

   Global.asax.cs
 
   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Web;
   using System.Web.Security;
   using System.Web.SessionState;
 
   public class Global : System.Web.HttpApplication
   {
 
      void Application_Start(object sender, EventArgs e)
      {
 
         if(!Roles.RoleExists("Auditors")){
            //Roles.CreateRole("Auditors");
         }
 
         if(!Roles.RoleExists("Approvers")){
            //Roles.CreateRole("Approvers");
         }
 
         if(!Roles.RoleExists("Admins")){
            Roles.CreateRole("Admins");
            Roles.AddUserToRole(@"DEISLER\administrator", "Admins");
            Roles.AddUserToRole(@"DEISLER\lcadmin", "Admins");
         }
 
      }
 
      … …
 
   }