packages/Microsoft.AspNet.Providers.1.2/tools/Install.ps1

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

param($installPath, $toolsPath, $package, $project)
try {
    # Set up variables
    $timestamp = (Get-Date).ToString('yyyyMMddHHmmss')
    $projectName = [IO.Path]::GetFileName($project.ProjectName.Trim([IO.PATH]::DirectorySeparatorChar, [IO.PATH]::AltDirectorySeparatorChar))
    $catalogName = "aspnet-$projectName-$timestamp"
    $connectionString ="Data Source=.\SQLEXPRESS;Initial Catalog=$catalogName;Integrated Security=SSPI"
    $connectionStringToken = "Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-$projectName"
    $config = $project.ProjectItems | Where-Object { $_.Name -eq "Web.config" }    
    $configPath = ($config.Properties | Where-Object { $_.Name -eq "FullPath" }).Value
    
    # Load the Config File
    $xml = New-Object System.Xml.XmlDocument
    $xml.Load($configPath)
    
    function CommentNode($node) {
        if (!$node) {
            return;
        }
        
        $commentNode = $xml.CreateComment($node.OuterXml)
        $parent = $node.ParentNode
        $parent.InsertBefore($commentNode, $node) | Out-Null
        $parent.RemoveChild($node) | Out-Null
    }
    
    function GetConnectionStringToken($connectionStringValue, $tokenName) {
        $startIndex = $connectionStringValue.IndexOf($tokenName, [StringComparison]::OrdinalIgnoreCase)
        if ($startIndex -ge 0) {
            $endIndex = $connectionStringValue.IndexOf(';', $startIndex + 1)
            $endIndex = if ($endIndex -lt 0) { $connectionStringValue.Length } else { $endIndex }
            
            ';' + $connectionStringValue.Substring($startIndex, $endIndex - $startIndex)
        }
    }
    
    
    # Comment out older providers
    $node = $xml.SelectSingleNode("/configuration/system.web/membership/providers/add[@type='System.Web.Security.SqlMembershipProvider']")
    $addedNode = $xml.SelectSingleNode("/configuration/system.web/membership/providers/add[@name='DefaultMembershipProvider']")
    
    if ($node) {
        # Copy all attributes other than 'name', 'type' and 'connectionStringName' to the newly added node.
        $node.Attributes | Where { ! (@('name', 'type', 'connectionStringName') -contains $_.name) } | ForEach {
            $addedNode.SetAttribute($_.name, $_.value)
        }
    }
    
    $oldConnectionNode = $xml.SelectSingleNode("/configuration/connectionStrings/add[@name='$($node.connectionStringName)']")
    if ($oldConnectionNode) {
        $oldConnectionValue = $oldConnectionNode.connectionString
        # Copy AttachDBFileName and UserInstance values from the old connection string if they exist
        if ($oldConnectionValue.IndexOf('AttachDBFilename', [StringComparison]::OrdinalIgnoreCase) -ge 0) {
            $connectionString += ";AttachDBFilename=|DataDirectory|$catalogName.mdf"
        }
        $connectionString += (GetConnectionStringToken $oldConnectionValue 'User Instance')
    }
    
    CommentNode $node
    CommentNode $oldConnectionNode
后面还有 36 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。