Beruflich Dokumente
Kultur Dokumente
SET ANSI_PADDING ON
GO
SET ANSI_NULL_DFLT_ON ON
GO
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
DECLARE @dbname nvarchar(128)
SET @dbname = N'aspnetdb'
IF (NOT EXISTS (SELECT name
FROM master.dbo.sysdatabases
WHERE ('[' + name + ']' = @dbname OR name = @dbname)))
BEGIN
RAISERROR('The database ''%s'' cannot be found. Please run InstallCommon.sql f
irst.', 18, 1, @dbname)
END
GO
USE [aspnetdb]
GO
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Applications')
AND (type = 'U')))
BEGIN
RAISERROR('The table ''aspnet_Applications'' cannot be found. Please use aspne
t_regsql.exe for installing ASP.NET application services.', 18, 1)
END
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Users')
AND (type = 'U')))
BEGIN
RAISERROR('The table ''aspnet_Users'' cannot be found. Please use aspnet_regsq
l.exe for installing ASP.NET application services.', 18, 1)
END
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Applications_CreateApplication')
AND (type = 'P')))
BEGIN
RAISERROR('The stored procedure ''aspnet_Applications_CreateApplication'' cann
ot be found. Please use aspnet_regsql.exe for installing ASP.NET application ser
vices.', 18, 1)
END
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Users_CreateUser')
AND (type = 'P')))
BEGIN
END
GO
IF (@@ROWCOUNT > 0)
BEGIN
UPDATE dbo.aspnet_Users
SET
LastActivityDate=@CurrentTimeUtc
WHERE UserId = @UserId
END
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Profile_SetProperties')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Profile_SetProperties
GO
CREATE PROCEDURE dbo.aspnet_Profile_SetProperties
@ApplicationName
nvarchar(256),
@PropertyNames
ntext,
@PropertyValuesString ntext,
@PropertyValuesBinary image,
@UserName
nvarchar(256),
@IsUserAnonymous
bit,
@CurrentTimeUtc
datetime
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
DECLARE @ErrorCode
SET @ErrorCode = 0
int
DECLARE @TranStarted
SET @TranStarted = 0
bit
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
@UserId uniqueidentifier
@LastActivityDate datetime
@UserId = NULL
@LastActivityDate = @CurrentTimeUtc
END
SET @TranStarted = 0
COMMIT TRANSACTION
RETURN 0
Cleanup:
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END
GO
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Profile_DeleteProfiles')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Profile_DeleteProfiles
GO
CREATE PROCEDURE dbo.aspnet_Profile_DeleteProfiles
@ApplicationName
nvarchar(256),
@UserNames
nvarchar(4000)
AS
BEGIN
DECLARE @UserName
nvarchar(256)
DECLARE @CurrentPos int
DECLARE @NextPos
int
DECLARE @NumDeleted int
DECLARE @DeletedUser int
DECLARE @TranStarted bit
DECLARE @ErrorCode
int
SET
SET
SET
SET
@ErrorCode = 0
@CurrentPos = 1
@NumDeleted = 0
@TranStarted = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
WHILE (@CurrentPos <= LEN(@UserNames))
BEGIN
SELECT @NextPos = CHARINDEX(N',', @UserNames, @CurrentPos)
IF (@NextPos = 0 OR @NextPos IS NULL)
SELECT @NextPos = LEN(@UserNames) + 1
SELECT @UserName = SUBSTRING(@UserNames, @CurrentPos, @NextPos - @Curren
tPos)
IF (LEN(@UserName) > 0)
BEGIN
SELECT @DeletedUser = 0
EXEC dbo.aspnet_Users_DeleteUser @ApplicationName, @UserName, 4, @De
letedUser OUTPUT
IF( @@ERROR <> 0 )
BEGIN
SET @ErrorCode = -1
GOTO Cleanup
END
IF (@DeletedUser <> 0)
SELECT @NumDeleted = @NumDeleted + 1
END
END
SELECT @NumDeleted
IF (@TranStarted = 1)
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END
SET @TranStarted = 0
RETURN 0
Cleanup:
IF (@TranStarted = 1 )
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END
GO
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Profile_DeleteInactiveProfiles')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Profile_DeleteInactiveProfiles
GO
CREATE PROCEDURE dbo.aspnet_Profile_DeleteInactiveProfiles
@ApplicationName
nvarchar(256),
@ProfileAuthOptions
int,
@InactiveSinceDate
datetime
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
BEGIN
SELECT 0
RETURN
END
DELETE
FROM
dbo.aspnet_Profile
WHERE UserId IN
( SELECT UserId
FROM
dbo.aspnet_Users u
WHERE ApplicationId = @ApplicationId
AND (LastActivityDate <= @InactiveSinceDate)
AND (
(@ProfileAuthOptions = 2)
OR (@ProfileAuthOptions = 0 AND IsAnonymous = 1)
OR (@ProfileAuthOptions = 1 AND IsAnonymous = 0)
)
)
END
GO
SELECT @@ROWCOUNT
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Profile_GetNumberOfInactiveProfiles')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Profile_GetNumberOfInactiveProfiles
GO
CREATE PROCEDURE dbo.aspnet_Profile_GetNumberOfInactiveProfiles
@ApplicationName
nvarchar(256),
@ProfileAuthOptions
int,
@InactiveSinceDate
datetime
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
BEGIN
SELECT 0
RETURN
END
SELECT
FROM
WHERE
AND
AND
AND
END
GO
COUNT(*)
dbo.aspnet_Users u, dbo.aspnet_Profile p
ApplicationId = @ApplicationId
u.UserId = p.UserId
(LastActivityDate <= @InactiveSinceDate)
(
(@ProfileAuthOptions = 2)
OR (@ProfileAuthOptions = 0 AND IsAnonymous = 1)
OR (@ProfileAuthOptions = 1 AND IsAnonymous = 0)
)
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Profile_GetProfiles')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Profile_GetProfiles
GO
CREATE PROCEDURE dbo.aspnet_Profile_GetProfiles
@ApplicationName
nvarchar(256),
@ProfileAuthOptions
int,
@PageIndex
int,
@PageSize
int,
@UserNameToMatch
nvarchar(256) = NULL,
@InactiveSinceDate
datetime
= NULL
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
RETURN
-- Set the page bounds
DECLARE @PageLowerBound int
DECLARE @PageUpperBound int
DECLARE @TotalRecords int
SET @PageLowerBound = @PageSize * @PageIndex
SET @PageUpperBound = @PageSize - 1 + @PageLowerBound
-- Create a temp table TO store the select results
CREATE TABLE #PageIndexForUsers
(
IndexId int IDENTITY (0, 1) NOT NULL,
UserId uniqueidentifier
)
-- Insert into our temp table
INSERT INTO #PageIndexForUsers (UserId)
SELECT u.UserId
FROM
dbo.aspnet_Users u, dbo.aspnet_Profile p
WHERE ApplicationId = @ApplicationId
AND u.UserId = p.UserId
AND (@InactiveSinceDate IS NULL OR LastActivityDate <= @InactiveSinc
eDate)
AND (
(@ProfileAuthOptions = 2)
OR (@ProfileAuthOptions = 0 AND IsAnonymous = 1)
OR (@ProfileAuthOptions = 1 AND IsAnonymous = 0)
)
AND (@UserNameToMatch IS NULL OR LoweredUserName LIKE LOWER(@UserNam
eToMatch))
ORDER BY UserName
SELECT u.UserName, u.IsAnonymous, u.LastActivityDate, p.LastUpdatedDate,
DATALENGTH(p.PropertyNames) + DATALENGTH(p.PropertyValuesString) + D
ATALENGTH(p.PropertyValuesBinary)
FROM
dbo.aspnet_Users u, dbo.aspnet_Profile p, #PageIndexForUsers i
WHERE u.UserId = p.UserId AND p.UserId = i.UserId AND i.IndexId >= @PageLo
werBound AND i.IndexId <= @PageUpperBound
SELECT COUNT(*)
FROM #PageIndexForUsers
END
GO
/*************************************************************/
/*************************************************************/
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'vw_aspnet_Profiles')
AND (type = 'V')))
BEGIN
PRINT 'Creating the vw_aspnet_Profiles view...'
EXEC(N'
CREATE VIEW [dbo].[vw_aspnet_Profiles]
AS SELECT [dbo].[aspnet_Profile].[UserId], [dbo].[aspnet_Profile].[LastUpdated
Date],
[DataSize]= DATALENGTH([dbo].[aspnet_Profile].[PropertyNames])
+ DATALENGTH([dbo].[aspnet_Profile].[PropertyValuesString])
+ DATALENGTH([dbo].[aspnet_Profile].[PropertyValuesBinary])
FROM [dbo].[aspnet_Profile]
')
END
GO
/*************************************************************/
/*************************************************************/
---Create Profile schema version
-DECLARE @command nvarchar(4000)
SET @command = 'GRANT EXECUTE ON [dbo].aspnet_RegisterSchemaVersion TO ' + QUOTE
NAME(user)
EXECUTE (@command)
GO
EXEC [dbo].aspnet_RegisterSchemaVersion N'Profile', N'1', 1, 1
GO
/*************************************************************/
/*************************************************************/
---Create Profile roles
-IF ( NOT EXISTS ( SELECT name
FROM sysusers
WHERE issqlrole = 1
AND name = N'aspnet_Profile_FullAccess' ) )
EXEC sp_addrole N'aspnet_Profile_FullAccess'
IF ( NOT EXISTS ( SELECT name
FROM sysusers
WHERE issqlrole = 1
DECLARE
DECLARE
DECLARE
DECLARE
@version nchar(100)
@dot int
@hyphen int
@SqlToExec nchar(400)
SELECT @ver = 8
SELECT @version = @@Version
SELECT @hyphen = CHARINDEX(N' - ', @version)
IF (NOT(@hyphen IS NULL) AND @hyphen > 0)
BEGIN
SELECT @hyphen = @hyphen + 3
SELECT @dot
= CHARINDEX(N'.', @version, @hyphen)
IF (NOT(@dot IS NULL) AND @dot > @hyphen)
BEGIN
SELECT @version = SUBSTRING(@version, @hyphen, @dot - @hyphen)
SELECT @ver
= CONVERT(int, @version)
END
END
IF (@ver >= 8)
BEGIN
EXEC sp_tableoption N'aspnet_Profile', 'text in row', 6000
END
GO
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
DECLARE @command nvarchar(4000)
SET @command = 'REVOKE EXECUTE ON [dbo].aspnet_RegisterSchemaVersion FROM ' + QU
OTENAME(user)
EXECUTE (@command)
GO
PRINT '-------------------------------------------------'
PRINT 'Completed execution of InstallProfile.SQL'
PRINT '-------------------------------------------------'
q , /**********************************************************************/
/* InstallRoles.SQL
*/
/*
*/
/* Installs the tables, triggers and stored procedures necessary for */
/* supporting the aspnet feature of ASP.Net
*/
/*
*/
/* InstallCommon.sql must be run before running this file.
*/
/*
** Copyright Microsoft, Inc. 2002
** All Rights Reserved.
*/
/**********************************************************************/
PRINT '--------------------------------------'
PRINT 'Starting execution of InstallRoles.SQL'
PRINT '--------------------------------------'
GO
SET QUOTED_IDENTIFIER OFF -- We don't use quoted identifiers
SET ANSI_NULLS ON
-- We don't want (NULL = NULL) == TRUE
GO
SET ANSI_PADDING ON
GO
SET ANSI_NULL_DFLT_ON ON
GO
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
DECLARE @dbname nvarchar(128)
SET @dbname = N'aspnetdb'
IF (NOT EXISTS (SELECT name
FROM master.dbo.sysdatabases
WHERE ('[' + name + ']' = @dbname OR name = @dbname)))
BEGIN
RAISERROR('The database ''%s'' cannot be found. Please run InstallCommon.sql f
irst.', 18, 1, @dbname)
END
GO
USE [aspnetdb]
GO
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Applications')
AND (type = 'U')))
BEGIN
RAISERROR('The table ''aspnet_Applications'' cannot be found. Please use aspne
t_regsql.exe for installing ASP.NET application services.', 18, 1)
END
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Users')
AND (type = 'U')))
BEGIN
RAISERROR('The table ''aspnet_Users'' cannot be found. Please use aspnet_regsq
l.exe for installing ASP.NET application services.', 18, 1)
END
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Applications_CreateApplication')
AND (type = 'P')))
BEGIN
RAISERROR('The stored procedure ''aspnet_Applications_CreateApplication'' cann
ot be found. Please use aspnet_regsql.exe for installing ASP.NET application ser
vices.', 18, 1)
END
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Users_CreateUser')
AND (type = 'P')))
BEGIN
@ApplicationName nvarchar(256),
@UserName
nvarchar(256)
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
RETURN(1)
DECLARE @UserId uniqueidentifier
SELECT @UserId = NULL
SELECT r.RoleName
FROM dbo.aspnet_Roles r, dbo.aspnet_UsersInRoles ur
WHERE r.RoleId = ur.RoleId AND r.ApplicationId = @ApplicationId AND ur.User
Id = @UserId
ORDER BY r.RoleName
RETURN (0)
END
GO
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Roles_CreateRole')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Roles_CreateRole
GO
CREATE PROCEDURE dbo.aspnet_Roles_CreateRole
@ApplicationName nvarchar(256),
@RoleName
nvarchar(256)
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
DECLARE @ErrorCode
SET @ErrorCode = 0
int
DECLARE @TranStarted
SET @TranStarted = 0
bit
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
@DeleteOnlyIfRoleIsEmpty
bit
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
RETURN(1)
DECLARE @ErrorCode
SET @ErrorCode = 0
int
DECLARE @TranStarted
SET @TranStarted = 0
bit
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
DECLARE
SELECT
SELECT
(@RoleName)
@RoleId uniqueidentifier
@RoleId = NULL
@RoleId = RoleId FROM dbo.aspnet_Roles WHERE LoweredRoleName = LOWER
AND ApplicationId = @ApplicationId
IF (@RoleId IS NULL)
BEGIN
SELECT @ErrorCode = 1
GOTO Cleanup
END
IF (@DeleteOnlyIfRoleIsEmpty <> 0)
BEGIN
IF (EXISTS (SELECT RoleId FROM dbo.aspnet_UsersInRoles WHERE @RoleId =
RoleId))
BEGIN
SELECT @ErrorCode = 2
GOTO Cleanup
END
END
DELETE FROM dbo.aspnet_UsersInRoles WHERE @RoleId = RoleId
IF( @@ERROR <> 0 )
BEGIN
SET @ErrorCode = -1
GOTO Cleanup
END
DELETE FROM dbo.aspnet_Roles WHERE @RoleId = RoleId AND ApplicationId = @Ap
plicationId
IF( @@ERROR <> 0 )
BEGIN
SET @ErrorCode = -1
GOTO Cleanup
END
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END
RETURN(0)
Cleanup:
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
END
GO
RETURN @ErrorCode
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Roles_RoleExists')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Roles_RoleExists
GO
CREATE PROCEDURE dbo.aspnet_Roles_RoleExists
@ApplicationName nvarchar(256),
@RoleName
nvarchar(256)
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
RETURN(0)
IF (EXISTS (SELECT RoleName FROM dbo.aspnet_Roles WHERE LOWER(@RoleName) = L
oweredRoleName AND ApplicationId = @ApplicationId ))
RETURN(1)
ELSE
RETURN(0)
END
GO
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_UsersInRoles_AddUsersToRoles')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_UsersInRoles_AddUsersToRoles
GO
@ver
@version
@dot
@hyphen
@SqlToExec
int
nchar(100)
int
int
nchar(4000)
SELECT @ver = 7
SELECT @version = @@Version
SELECT @hyphen = CHARINDEX(N' - ', @version)
IF (NOT(@hyphen IS NULL) AND @hyphen > 0)
BEGIN
SELECT @hyphen = @hyphen + 3
SELECT @dot
= CHARINDEX(N'.', @version, @hyphen)
IF (NOT(@dot IS NULL) AND @dot > @hyphen)
BEGIN
SELECT @version = SUBSTRING(@version, @hyphen, @dot - @hyphen)
SELECT @ver
= CONVERT(int, @version)
END
END
IF (@ver > 7)
SELECT @SqlToExec = N'
CREATE PROCEDURE dbo.aspnet_UsersInRoles_AddUsersToRoles
@ApplicationName nvarchar(256),
@UserNames
nvarchar(4000),
@RoleNames
nvarchar(4000),
@CurrentTimeUtc datetime
AS
BEGIN
DECLARE @AppId uniqueidentifier
SELECT @AppId = NULL
SELECT @AppId = ApplicationId FROM aspnet_Applications WHERE LOWER(@App
licationName) = LoweredApplicationName
IF (@AppId IS NULL)
RETURN(2)
DECLARE @TranStarted bit
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
EY)
EY)
DECLARE @tbNames
DECLARE @tbRoles
DECLARE @tbUsers
DECLARE
DECLARE
DECLARE
DECLARE
int
int
int
nvarchar(256)
@Num
@Pos
@NextPos
@Name
SET @Num = 0
SET @Pos = 1
WHILE(@Pos <= LEN(@RoleNames))
BEGIN
SELECT @NextPos = CHARINDEX(N'','', @RoleNames, @Pos)
IF (@NextPos = 0 OR @NextPos IS NULL)
SELECT @NextPos = LEN(@RoleNames) + 1
SELECT @Name = RTRIM(LTRIM(SUBSTRING(@RoleNames, @Pos, @NextPos
- @Pos)))
SELECT @Pos = @NextPos+1
END
END
d = @AppId
END
END
IF( @TranStarted = 1 )
ROLLBACK TRANSACTION
RETURN(3)
END'
ELSE
SELECT @SqlToExec = N'
CREATE PROCEDURE dbo.aspnet_UsersInRoles_AddUsersToRoles
@ApplicationName
nvarchar(256),
@UserNames
nvarchar(4000),
@RoleNames
nvarchar(4000),
@CurrentTimeUtc
datetime
AS
BEGIN
DECLARE @AppId uniqueidentifier
SELECT @AppId = NULL
SELECT @AppId = ApplicationId FROM aspnet_Applications WHERE LOWER(@App
licationName) = LoweredApplicationName
IF (@AppId IS NULL)
RETURN(2)
DECLARE @TranStarted bit
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
DECLARE
DECLARE
DECLARE
DECLARE
@RoleId
@UserId
@UserName
@RoleName
uniqueidentifier
uniqueidentifier
nvarchar(256)
nvarchar(256)
DECLARE
DECLARE
DECLARE
DECLARE
@CurrentPosU
@NextPosU
@CurrentPosR
@NextPosR
int
int
int
int
SELECT @CurrentPosU = 1
WHILE(@CurrentPosU <= LEN(@UserNames))
BEGIN
SELECT @NextPosU = CHARINDEX(N'','', @UserNames, @CurrentPosU)
IF (@NextPosU = 0 OR @NextPosU IS NULL)
SELECT @NextPosU = LEN(@UserNames) + 1
SELECT @UserName = SUBSTRING(@UserNames, @CurrentPosU, @NextPosU
- @CurrentPosU)
SELECT @CurrentPosU = @NextPosU+1
ntPosR)
SELECT @CurrentPosR = 1
WHILE(@CurrentPosR <= LEN(@RoleNames))
BEGIN
SELECT @NextPosR = CHARINDEX(N'','', @RoleNames, @Curre
NextPosR - @CurrentPosR)
bit
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
@tbNames
@tbRoles
@tbUsers
@Num
@Pos
@NextPos
@Name
@CountAll
@CountU
@CountR
SET @Num = 0
SET @Pos = 1
WHILE(@Pos <= LEN(@RoleNames))
BEGIN
SELECT @NextPos = CHARINDEX(N'','', @RoleNames, @Pos)
IF (@NextPos = 0 OR @NextPos IS NULL)
SELECT @NextPos = LEN(@RoleNames) + 1
SELECT @Name = RTRIM(LTRIM(SUBSTRING(@RoleNames, @Pos, @NextPos
- @Pos)))
SELECT @Pos = @NextPos+1
INSERT INTO @tbNames VALUES (@Name)
END
END
END
IF( @TranStarted = 1 )
ROLLBACK TRANSACTION
RETURN(1)
FROM
WHERE
END
'
ELSE
SELECT @SqlToExec = N'
CREATE PROCEDURE dbo.aspnet_UsersInRoles_RemoveUsersFromRoles
@ApplicationName nvarchar(256),
@UserNames
nvarchar(4000),
@RoleNames
nvarchar(4000)
AS
BEGIN
DECLARE @AppId uniqueidentifier
SELECT @AppId = NULL
SELECT @AppId = ApplicationId FROM aspnet_Applications WHERE LOWER(@App
licationName) = LoweredApplicationName
IF (@AppId IS NULL)
RETURN(2)
DECLARE @TranStarted
SET @TranStarted = 0
bit
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
DECLARE
DECLARE
DECLARE
DECLARE
@RoleId
@UserId
@UserName
@RoleName
DECLARE @CurrentPosU
DECLARE @NextPosU
DECLARE @CurrentPosR
uniqueidentifier
uniqueidentifier
nvarchar(256)
nvarchar(256)
int
int
int
DECLARE @NextPosR
int
SELECT @CurrentPosU = 1
WHILE(@CurrentPosU <= LEN(@UserNames))
BEGIN
SELECT @NextPosU = CHARINDEX(N'','', @UserNames, @CurrentPosU)
IF (@NextPosU = 0 OR @NextPosU IS NULL)
SELECT @NextPosU = LEN(@UserNames)+1
SELECT @UserName = SUBSTRING(@UserNames, @CurrentPosU, @NextPosU
- @CurrentPosU)
SELECT @CurrentPosU = @NextPosU+1
ntPosR)
SELECT @CurrentPosR = 1
WHILE(@CurrentPosR <= LEN(@RoleNames))
BEGIN
SELECT @NextPosR = CHARINDEX(N'','', @RoleNames, @Curre
NextPosR - @CurrentPosR)
RETURN(0)
END
'
EXEC sp_executesql @SqlToExec
GO
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_UsersInRoles_GetUsersInRoles')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_UsersInRoles_GetUsersInRoles
GO
CREATE PROCEDURE dbo.aspnet_UsersInRoles_GetUsersInRoles
@ApplicationName nvarchar(256),
@RoleName
nvarchar(256)
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
RETURN(1)
DECLARE @RoleId uniqueidentifier
SELECT @RoleId = NULL
Id
SELECT u.UserName
FROM dbo.aspnet_Users u, dbo.aspnet_UsersInRoles ur
WHERE u.UserId = ur.UserId AND @RoleId = ur.RoleId AND u.ApplicationId = @A
pplicationId
ORDER BY u.UserName
RETURN(0)
END
GO
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_UsersInRoles_FindUsersInRole')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_UsersInRoles_FindUsersInRole
GO
CREATE PROCEDURE dbo.aspnet_UsersInRoles_FindUsersInRole
@ApplicationName nvarchar(256),
@RoleName
nvarchar(256),
@UserNameToMatch nvarchar(256)
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
RETURN(1)
DECLARE @RoleId uniqueidentifier
SELECT @RoleId = NULL
Id
SELECT u.UserName
FROM dbo.aspnet_Users u, dbo.aspnet_UsersInRoles ur
WHERE u.UserId = ur.UserId AND @RoleId = ur.RoleId AND u.ApplicationId = @A
pplicationId AND LoweredUserName LIKE LOWER(@UserNameToMatch)
ORDER BY u.UserName
RETURN(0)
END
GO
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_Roles_GetAllRoles')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Roles_GetAllRoles
GO
CREATE PROCEDURE dbo.aspnet_Roles_GetAllRoles (
@ApplicationName
nvarchar(256))
AS
BEGIN
DECLARE @ApplicationId uniqueidentifier
SELECT @ApplicationId = NULL
SELECT @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(
@ApplicationName) = LoweredApplicationName
IF (@ApplicationId IS NULL)
RETURN
SELECT RoleName
FROM dbo.aspnet_Roles WHERE ApplicationId = @ApplicationId
ORDER BY RoleName
END
GO
/*************************************************************/
/*************************************************************/
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'vw_aspnet_Roles')
ON dbo.aspnet_Roles_CreateRole TO aspnet_Roles_FullAccess
ON dbo.aspnet_Roles_DeleteRole TO aspnet_Roles_FullAccess
ON dbo.aspnet_UsersInRoles_AddUsersToRoles TO aspnet_Roles_FullAcc
ON dbo.aspnet_UsersInRoles_RemoveUsersFromRoles TO aspnet_Roles_Fu
--View rights
-GRANT SELECT ON dbo.vw_aspnet_Applications TO aspnet_Roles_ReportingAccess
GRANT SELECT ON dbo.vw_aspnet_Users TO aspnet_Roles_ReportingAccess
GRANT SELECT ON dbo.vw_aspnet_Roles TO aspnet_Roles_ReportingAccess
GRANT SELECT ON dbo.vw_aspnet_UsersInRoles TO aspnet_Roles_ReportingAccess
GO
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
DECLARE @command nvarchar(4000)
SET @command = 'REVOKE EXECUTE ON [dbo].aspnet_RegisterSchemaVersion FROM ' + QU
OTENAME(user)
EXECUTE (@command)
GO
PRINT '---------------------------------------'
PRINT 'Completed execution of InstallRoles.SQL'
PRINT '---------------------------------------'
/*********************************************************************
InstallSqlState.SQL
Installs the tables, and stored procedures necessary for
supporting ASP.NET session state.
Copyright Microsoft, Inc.
All Rights Reserved.
*********************************************************************/
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
GO
''
'-----------------------------------------'
'Starting execution of InstallSqlState.SQL'
'-----------------------------------------'
'--------------------------------------------------'
'Note:
'
'Do not run this file manually.
'
'You should use aspnet_regsql.exe to install
'
'and uninstall SQL session state.
'
''
'Run ''aspnet_regsql.exe -?'' for details.
'
'--------------------------------------------------'
/*****************************************************************************/
USE master
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'GetHashCode') AND (type
= 'P')))
DROP PROCEDURE [dbo].GetHashCode
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetAppID') AND (type
= 'P')))
DROP PROCEDURE [dbo].TempGetAppID
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItem') AND (
type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItem
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItem2') AND
(type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItem2
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItem3') AND
(type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItem3
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItemExclusiv
e') AND (type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItemExclusive
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItemExclusiv
e2') AND (type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItemExclusive2
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItemExclusiv
e3') AND (type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItemExclusive3
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempReleaseStateItemExcl
usive') AND (type = 'P')))
DROP PROCEDURE [dbo].TempReleaseStateItemExclusive
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempInsertUninitializedI
tem') AND (type = 'P')))
DROP PROCEDURE [dbo].TempInsertUninitializedItem
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempInsertStateItemShort
') AND (type = 'P')))
DROP PROCEDURE [dbo].TempInsertStateItemShort
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempInsertStateItemLong'
) AND (type = 'P')))
DROP PROCEDURE [dbo].TempInsertStateItemLong
GO
AS
BEGIN
yphen)
END
GO
DECLARE
DECLARE
DECLARE
DECLARE
@version
@dot
@hyphen
@SqlToExec
nchar(100)
int
int
nchar(4000)
SELECT @@ver = 7
SELECT @version = @@Version
SELECT @hyphen = CHARINDEX(N' - ', @version)
IF (NOT(@hyphen IS NULL) AND @hyphen > 0)
BEGIN
SELECT @hyphen = @hyphen + 3
SELECT @dot
= CHARINDEX(N'.', @version, @hyphen)
IF (NOT(@dot IS NULL) AND @dot > @hyphen)
BEGIN
SELECT @version = SUBSTRING(@version, @hyphen, @dot - @h
END
END
SELECT @@ver
= CONVERT(int, @version)
/*****************************************************************************/
USE [ASPState]
/* Find out the version */
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.CreateTempTables
AS
CREATE TABLE [tempdb].dbo.ASPStateTempSessions (
SessionId
nvarchar(88)
NOT NULL PRIMARY KEY,
Created
datetime
NOT NULL DEFAULT GETUTCDATE(
),
Expires
datetime
NOT NULL,
LockDate
datetime
NOT NULL,
LockDateLocal
datetime
NOT NULL,
LockCookie
int
NOT NULL,
Timeout
int
NOT NULL,
Locked
bit
NOT NULL,
SessionItemShort
VARBINARY(7000) NULL,
SessionItemLong
image
NULL,
Flags
int
NOT NULL DEFAULT 0,
)
CREATE NONCLUSTERED INDEX Index_Expires ON [tempdb].dbo.ASPStateTemp
Sessions(Expires)
CREATE TABLE [tempdb].dbo.ASPStateTempApplications (
AppId
int
NOT NULL PRIMARY KEY,
AppName
char(280)
NOT NULL,
)
ELSE
GO
/*****************************************************************************/
CREATE PROCEDURE dbo.GetHashCode
@input tAppName,
@hash int OUTPUT
AS
/*
This sproc is based on this C# hash function:
int GetHashCode(string s)
{
int
hash = 5381;
int
len = s.Length;
for (int i = 0; i < len; i++) {
int
c = Convert.ToInt32(s[i]);
hash = ((hash << 5) + hash) ^ c;
}
}
*/
return hash;
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
@hi_16bit
@lo_16bit
@hi_t
@lo_t
@len
@i
@c
@carry
int
int
int
int
int
int
int
int
SET @hi_16bit = 0
SET @lo_16bit = 5381
SET @len = DATALENGTH(@input)
SET @i = 1
WHILE (@i <= @len)
BEGIN
SET @c = ASCII(SUBSTRING(@input, @i, 1))
/* Formula:
hash = ((hash << 5) + hash) ^ c */
/* hash << 5 */
SET @hi_t = @hi_16bit * 32 /* high 16bits << 5 */
SET @hi_t = @hi_t & 0xFFFF /* zero out overflow */
SET @lo_t = @lo_16bit * 32 /* low 16bits << 5 */
its */
SET @carry = @lo_16bit & 0x1F0000 /* move low 16bits carryover to hi 16b
SET @carry = @carry / 0x10000 /* >> 16 */
SET @hi_t = @hi_t + @carry
SET @hi_t = @hi_t & 0xFFFF /* zero out overflow */
/* + hash */
SET @lo_16bit = @lo_16bit + @lo_t
SET @hi_16bit = @hi_16bit + @hi_t + (@lo_16bit / 0x10000)
/* delay clearing the overflow */
/* ^c */
SET @lo_16bit = @lo_16bit ^ @c
/* Now clear the overflow bits */
SET @hi_16bit = @hi_16bit & 0xFFFF
SET @lo_16bit = @lo_16bit & 0xFFFF
END
SET @i = @i + 1
RETURN 0
/*****************************************************************************/
DECLARE @cmd nchar(4000)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetAppID
@appName
tAppName,
@appId
int OUTPUT
AS
SET @appName = LOWER(@appName)
SET @appId = NULL
SELECT @appId = AppId
FROM [tempdb].dbo.ASPStateTempApplications
WHERE AppName = @appName
IF @appId IS NULL BEGIN
BEGIN TRAN
SELECT @appId = AppId
FROM [tempdb].dbo.ASPStateTempApplications WITH (TABLOCKX)
WHERE AppName = @appName
IF @appId IS NULL
BEGIN
EXEC GetHashCode @appName, @appId OUTPUT
INSERT [tempdb].dbo.ASPStateTempApplications
VALUES
(@appId, @appName)
IF @@ERROR = 2627
BEGIN
DECLARE @dupApp tAppName
SELECT @dupApp = RTRIM(AppName)
FROM [tempdb].dbo.ASPStateTempApplications
WHERE AppId = @appId
RAISERROR(''SQL session state fatal error: hash-code collision b
etween applications ''''%s'''' and ''''%s''''. Please rename the 1st application
to resolve the problem.'',
18, 1, @appName, @dupApp)
END
END
END
COMMIT
RETURN 0'
EXEC(@cmd)
GO
/*****************************************************************************/
/* Find out the version */
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItem
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockDate datetime OUTPUT,
@lockCookie int OUTPUT
AS
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
SET @now = GETUTCDATE()
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
@locked = Locked,
@lockDate = LockDateLocal,
@lockCookie = LockCookie,
@itemShort = CASE @locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
ELSE
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
@locked = Locked,
@lockDate = LockDate,
@lockCookie = LockCookie,
@itemShort = CASE @locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [tempdb].dbo.ASPStateTempSessions.SessionItemLong @text
ptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItem2
AS
@id
@itemShort
@locked
@lockAge
@lockCookie
tSessionId,
tSessionItemShort OUTPUT,
bit OUTPUT,
int OUTPUT,
int OUTPUT
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
@locked = Locked,
@lockAge = DATEDIFF(second, LockDate, @now),
@lockCookie = LockCookie,
@itemShort = CASE @locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [tempdb].dbo.ASPStateTempSessions.SessionItemLong @text
ptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
/* Find out the version */
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItem3
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockAge
int OUTPUT,
@lockCookie int OUTPUT,
@actionFlags int OUTPUT
AS
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
ELSE
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END,
/* If the Uninitialized flag (0x1) if it is set,
remove it and return InitializeItem (0x1) in actionFlags */
Flags = CASE
WHEN (Flags & 1) <> 0 THEN (Flags & ~1)
ELSE Flags
END,
@actionFlags = CASE
WHEN (Flags & 1) <> 0 THEN 1
ELSE 0
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [tempdb].dbo.ASPStateTempSessions.SessionItemLong @text
ptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItemExclusive
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockDate datetime OUTPUT,
@lockCookie int OUTPUT
AS
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
LockDate = CASE Locked
WHEN 0 THEN @now
ELSE LockDate
END,
@lockDate = LockDateLocal = CASE Locked
ELSE
ELSE NULL
END,
@textptr = CASE Locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE Locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END,
@locked = Locked,
Locked = 1
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [tempdb].dbo.ASPStateTempSessions.SessionItemLong @text
ptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItemExclusive3
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockAge
int OUTPUT,
@lockCookie int OUTPUT,
@actionFlags int OUTPUT
AS
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
LockDate = CASE Locked
WHEN 0 THEN @now
ELSE LockDate
END,
LockDateLocal = CASE Locked
WHEN 0 THEN @nowLocal
ELSE LockDateLocal
END,
@lockAge = CASE Locked
WHEN 0 THEN 0
ELSE DATEDIFF(second, LockDate, @now)
END,
@lockCookie = LockCookie = CASE Locked
WHEN 0 THEN LockCookie + 1
ELSE LockCookie
END,
@itemShort = CASE Locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE Locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE Locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END,
@locked = Locked,
Locked = 1,
/* If the Uninitialized flag (0x1) if it is set,
remove it and return InitializeItem (0x1) in actionFlags */
Flags = CASE
WHEN (Flags & 1) <> 0 THEN (Flags & ~1)
ELSE Flags
END,
@actionFlags = CASE
WHEN (Flags & 1) <> 0 THEN 1
ELSE 0
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [tempdb].dbo.ASPStateTempSessions.SessionItemLong @text
ptr 0 @length
END
RETURN 0'
ELSE
ELSE LockCookie
END,
@itemShort = CASE Locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE Locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE Locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
d* T T
END,
@locked = Locked,
Locked = 1,
/* If the Uninitialized flag (0x1) if it is set,
remove it and return InitializeItem (0x1) in actionFlags */
Flags = CASE
WHEN (Flags & 1) <> 0 THEN (Flags & ~1)
ELSE Flags
END,
@actionFlags = CASE
WHEN (Flags & 1) <> 0 THEN 1
ELSE 0
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [tempdb].dbo.ASPStateTempSessions.SessionItemLong @text
ptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempReleaseStateItemExclusive
@id
tSessionId,
@lockCookie int
AS
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, GETUTCDATE()),
Locked = 0
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
ELSE
AS
@lockCookie int
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, GETDATE()),
Locked = 0
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempInsertUninitializedItem
@id
tSessionId,
@itemShort tSessionItemShort,
@timeout
int
AS
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
INSERT [tempdb].dbo.ASPStateTempSessions
(SessionId,
SessionItemShort,
Timeout,
Expires,
Locked,
LockDate,
LockDateLocal,
LockCookie,
Flags)
VALUES
(@id,
@itemShort,
@timeout,
DATEADD(n, @timeout, @now),
0,
@now,
@nowLocal,
1,
1)
RETURN 0'
ELSE
AS
DECLARE @now AS datetime
SET @now = GETDATE()
INSERT [tempdb].dbo.ASPStateTempSessions
(SessionId,
SessionItemShort,
Timeout,
Expires,
Locked,
LockDate,
LockCookie,
Flags)
VALUES
(@id,
@itemShort,
@timeout,
DATEADD(n, @timeout, @now),
0,
@now,
1,
1)
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempInsertStateItemShort
@id
tSessionId,
@itemShort tSessionItemShort,
@timeout
int
AS
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
INSERT [tempdb].dbo.ASPStateTempSessions
(SessionId,
SessionItemShort,
Timeout,
Expires,
Locked,
LockDate,
LockDateLocal,
LockCookie)
VALUES
(@id,
@itemShort,
@timeout,
DATEADD(n, @timeout, @now),
0,
@now,
@nowLocal,
1)
RETURN 0'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempInsertStateItemLong
@id
tSessionId,
@itemLong tSessionItemLong,
@timeout
int
AS
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
INSERT [tempdb].dbo.ASPStateTempSessions
(SessionId,
SessionItemLong,
Timeout,
Expires,
Locked,
LockDate,
LockDateLocal,
LockCookie)
VALUES
(@id,
@itemLong,
@timeout,
DATEADD(n, @timeout, @now),
0,
@now,
@nowLocal,
1)
RETURN 0'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempUpdateStateItemShortNullLong
@id
tSessionId,
@itemShort tSessionItemShort,
@timeout
int,
@lockCookie int
AS
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, @timeout, GETUTCDATE()),
SessionItemShort = @itemShort,
SessionItemLong = NULL,
Timeout = @timeout,
Locked = 0
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
ELSE
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempUpdateStateItemLongNullShort
@id
tSessionId,
@itemLong tSessionItemLong,
@timeout
int,
@lockCookie int
AS
UPDATE [tempdb].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, @timeout, GETUTCDATE()),
SessionItemLong = @itemLong,
SessionItemShort = NULL,
Timeout = @timeout,
Locked = 0
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @cmd nchar(4000)
SET @cmd = N'
CREATE PROCEDURE dbo.TempRemoveStateItem
@id
tSessionId,
@lockCookie int
AS
DELETE [tempdb].dbo.ASPStateTempSessions
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
EXEC(@cmd)
GO
/*****************************************************************************/
ELSE
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE FROM [tempdb].dbo.ASPStateTempSessions WHERE Sess
ionID = @SessionID AND Expires < @now
FETCH NEXT FROM ExpiredSessionCursor INTO @SessionID
END
CLOSE ExpiredSessionCursor
DEALLOCATE ExpiredSessionCursor
END
DROP TABLE #tblExpiredSessions
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
EXECUTE dbo.CreateTempTables
GO
USE master
GO
DECLARE @sstype nvarchar(128)
SET @sstype = N'sstype_temp'
IF UPPER(@sstype) = 'SSTYPE_TEMP' BEGIN
DECLARE @cmd nchar(4000)
SET @cmd = N'
/* Create the startup procedure */
CREATE PROCEDURE dbo.ASPState_Startup
AS
EXECUTE ASPState.dbo.CreateTempTables
RETURN 0'
EXEC(@cmd)
EXECUTE sp_procoption @ProcName='dbo.ASPState_Startup', @OptionName='startup
', @OptionValue='true'
END
/*****************************************************************************/
/* Create the job to delete expired sessions */
-- Add job category
-- We expect an error if the category already exists.
PRINT 'If the category already exists, an error from msdb.dbo.sp_add_category is
expected.'
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'
GO
BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode int
DECLARE @nameT nchar(200)
SELECT @ReturnCode = 0
-- Add the job
SET @nameT = N'ASPState' + '_Job_DeleteExpiredSessions'
EXECUTE @ReturnCode = msdb.dbo.sp_add_job
@job_id = @JobID OUTPUT,
@job_name = @nameT,
@owner_login_name = NULL,
@description = N'Deletes expired sessions from the session state dat
abase.',
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
PRINT
PRINT
PRINT
PRINT
''
'------------------------------------------'
'Completed execution of InstallSqlState.SQL'
'------------------------------------------'
, /*********************************************************************
InstallSqlStateTemplate.SQL
Installs the tables, and stored procedures necessary for
supporting ASP.NET session state.
Copyright Microsoft, Inc.
All Rights Reserved.
*********************************************************************/
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
PRINT
GO
/*
''
'-------------------------------------------------'
'Starting execution of InstallSqlStateTemplate.SQL'
'-------------------------------------------------'
''
'--------------------------------------------------'
'Note:
'
'This file is included for backward compatibility '
'only. You should use aspnet_regsql.exe to install'
'and uninstall SQL session state.
'
''
'Run ''aspnet_regsql.exe -?'' for details.
'
'--------------------------------------------------'
er"
To
1.
2.
3.
*/
script files.
/*****************************************************************************/
USE master
GO
/* Create and populate the session state database */
IF DB_ID(N'DatabaseNamePlaceHolder') IS NULL BEGIN
DECLARE @cmd nvarchar(500)
SET @cmd = N'CREATE DATABASE [DatabaseNamePlaceHolder]'
EXEC(@cmd)
END
GO
/* Drop all tables, startup procedures, stored procedures and types. */
/* Drop the DeleteExpiredSessions_Job */
DECLARE @jobname nvarchar(200)
SET @jobname = N'DatabaseNamePlaceHolder' + '_Job_DeleteExpiredSessions'
-- Delete the [local] job
-- We expected to get an error if the job doesn't exist.
PRINT 'If the job does not exist, an error from msdb.dbo.sp_delete_job is expect
ed.'
EXECUTE msdb.dbo.sp_delete_job @job_name = @jobname
GO
DECLARE @sstype nvarchar(128)
SET @sstype = N'sstype_custom'
IF UPPER(@sstype) = 'SSTYPE_TEMP' AND OBJECT_ID(N'dbo.ASPState_Startup', 'P') IS
NOT NULL BEGIN
DROP PROCEDURE dbo.ASPState_Startup
END
USE [DatabaseNamePlaceHolder]
GO
IF OBJECT_ID(N'dbo.ASPStateTempSessions','U') IS NOT NULL BEGIN
DROP TABLE dbo.ASPStateTempSessions
END
IF OBJECT_ID(N'dbo.ASPStateTempApplications','U') IS NOT NULL BEGIN
DROP TABLE dbo.ASPStateTempApplications
END
USE [DatabaseNamePlaceHolder]
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'GetMajorVersion') AND (t
ype = 'P')))
DROP PROCEDURE [dbo].GetMajorVersion
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'CreateTempTables') AND (
type = 'P')))
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetVersion') AND (ty
pe = 'P')))
DROP PROCEDURE [dbo].TempGetVersion
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'GetHashCode') AND (type
= 'P')))
DROP PROCEDURE [dbo].GetHashCode
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetAppID') AND (type
= 'P')))
DROP PROCEDURE [dbo].TempGetAppID
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItem') AND (
type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItem
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItem2') AND
(type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItem2
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItem3') AND
(type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItem3
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItemExclusiv
e') AND (type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItemExclusive
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItemExclusiv
e2') AND (type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItemExclusive2
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempGetStateItemExclusiv
e3') AND (type = 'P')))
DROP PROCEDURE [dbo].TempGetStateItemExclusive3
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempReleaseStateItemExcl
usive') AND (type = 'P')))
DROP PROCEDURE [dbo].TempReleaseStateItemExclusive
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempInsertUninitializedI
tem') AND (type = 'P')))
DROP PROCEDURE [dbo].TempInsertUninitializedItem
GO
IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'TempInsertStateItemShort
') AND (type = 'P')))
GO
GO
/*****************************************************************************/
CREATE PROCEDURE dbo.GetMajorVersion
@@ver int OUTPUT
AS
BEGIN
DECLARE @version
nchar(100)
DECLARE @dot
int
DECLARE @hyphen
int
DECLARE @SqlToExec
nchar(4000)
yphen)
END
GO
SELECT @@ver = 7
SELECT @version = @@Version
SELECT @hyphen = CHARINDEX(N' - ', @version)
IF (NOT(@hyphen IS NULL) AND @hyphen > 0)
BEGIN
SELECT @hyphen = @hyphen + 3
SELECT @dot
= CHARINDEX(N'.', @version, @hyphen)
IF (NOT(@dot IS NULL) AND @dot > @hyphen)
BEGIN
SELECT @version = SUBSTRING(@version, @hyphen, @dot - @h
END
END
SELECT @@ver
= CONVERT(int, @version)
/*****************************************************************************/
USE [DatabaseNamePlaceHolder]
/* Find out the version */
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.CreateTempTables
AS
CREATE TABLE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions (
SessionId
nvarchar(88)
NOT NULL PRIMARY KEY,
Created
datetime
NOT NULL DEFAULT GETUTCDATE(
),
Expires
datetime
NOT NULL,
LockDate
datetime
NOT NULL,
LockDateLocal
datetime
NOT NULL,
LockCookie
int
NOT NULL,
Timeout
int
NOT NULL,
Locked
bit
NOT NULL,
SessionItemShort
varbinary(7000) NULL,
SessionItemLong
image
NULL,
Flags
int
NOT NULL DEFAULT 0,
)
AppId
AppName
int
char(280)
ELSE
AppId
AppName
int
char(280)
*/
return hash;
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
@hi_16bit
@lo_16bit
@hi_t
@lo_t
@len
@i
@c
@carry
int
int
int
int
int
int
int
int
SET @hi_16bit = 0
SET @lo_16bit = 5381
SET @len = DATALENGTH(@input)
SET @i = 1
WHILE (@i <= @len)
BEGIN
SET @c = ASCII(SUBSTRING(@input, @i, 1))
/* Formula:
hash = ((hash << 5) + hash) ^ c */
/* hash << 5 */
SET @hi_t = @hi_16bit * 32 /* high 16bits << 5 */
SET @hi_t = @hi_t & 0xFFFF /* zero out overflow */
SET @lo_t = @lo_16bit * 32 /* low 16bits << 5 */
its */
SET @carry = @lo_16bit & 0x1F0000 /* move low 16bits carryover to hi 16b
SET @carry = @carry / 0x10000 /* >> 16 */
SET @hi_t = @hi_t + @carry
SET @hi_t = @hi_t & 0xFFFF /* zero out overflow */
/* + hash */
SET @lo_16bit = @lo_16bit + @lo_t
SET @hi_16bit = @hi_16bit + @hi_t + (@lo_16bit / 0x10000)
/* delay clearing the overflow */
/* ^c */
SET @lo_16bit = @lo_16bit ^ @c
/* Now clear the overflow bits */
SET @hi_16bit = @hi_16bit & 0xFFFF
SET @lo_16bit = @lo_16bit & 0xFFFF
END
SET @i = @i + 1
RETURN 0
/*****************************************************************************/
DECLARE @cmd nchar(4000)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetAppID
@appName
tAppName,
@appId
int OUTPUT
AS
SET @appName = LOWER(@appName)
SET @appId = NULL
SELECT @appId = AppId
FROM [DatabaseNamePlaceHolder].dbo.ASPStateTempApplications
WHERE AppName = @appName
IF @appId IS NULL BEGIN
BEGIN TRAN
KX)
COMMIT
RETURN 0'
EXEC(@cmd)
GO
/*****************************************************************************/
/* Find out the version */
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItem
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockDate datetime OUTPUT,
@lockCookie int OUTPUT
AS
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
SET @now = GETUTCDATE()
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
@locked = Locked,
@lockDate = LockDateLocal,
@lockCookie = LockCookie,
@itemShort = CASE @locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions.Sess
ionItemLong @textptr 0 @length
END
RETURN 0'
ELSE
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
@locked = Locked,
@lockDate = LockDate,
@lockCookie = LockCookie,
@itemShort = CASE @locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions.Sess
ionItemLong @textptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItem2
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockAge
int OUTPUT,
@lockCookie int OUTPUT
AS
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
SET @now = GETUTCDATE()
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
@locked = Locked,
@lockAge = DATEDIFF(second, LockDate, @now),
@lockCookie = LockCookie,
@itemShort = CASE @locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions.Sess
ionItemLong @textptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
/* Find out the version */
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItem3
AS
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockAge
int OUTPUT,
@lockCookie int OUTPUT,
@actionFlags int OUTPUT
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
SET @now = GETUTCDATE()
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
@locked = Locked,
@lockAge = DATEDIFF(second, LockDate, @now),
@lockCookie = LockCookie,
@itemShort = CASE @locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE @locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE @locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END,
ELSE
ELSE
ELSE LockCookie
END,
@itemShort = CASE Locked
WHEN 0 THEN SessionItemShort
ELSE NULL
END,
@textptr = CASE Locked
WHEN 0 THEN TEXTPTR(SessionItemLong)
ELSE NULL
END,
@length = CASE Locked
WHEN 0 THEN DATALENGTH(SessionItemLong)
ELSE NULL
END,
@locked = Locked,
Locked = 1
WHERE SessionId = @id
IF @length IS NOT NULL BEGIN
READTEXT [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions.Sess
ionItemLong @textptr 0 @length
END
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempGetStateItemExclusive2
@id
tSessionId,
@itemShort tSessionItemShort OUTPUT,
@locked
bit OUTPUT,
@lockAge
int OUTPUT,
@lockCookie int OUTPUT
AS
DECLARE @textptr AS tTextPtr
DECLARE @length AS int
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, @now),
LockDate = CASE Locked
WHEN 0 THEN @now
ELSE LockDate
END,
LockDateLocal = CASE Locked
WHEN 0 THEN @nowLocal
ELSE LockDateLocal
END,
ELSE
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, GETUTCDATE()),
Locked = 0
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempInsertUninitializedItem
@id
tSessionId,
@itemShort tSessionItemShort,
@timeout
int
AS
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
INSERT [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
(SessionId,
SessionItemShort,
Timeout,
Expires,
Locked,
LockDate,
LockDateLocal,
LockCookie,
Flags)
VALUES
(@id,
@itemShort,
@timeout,
DATEADD(n, @timeout, @now),
0,
@now,
@nowLocal,
1,
1)
RETURN 0'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempInsertStateItemShort
@id
tSessionId,
@itemShort tSessionItemShort,
@timeout
int
AS
DECLARE @now AS datetime
DECLARE @nowLocal AS datetime
SET @now = GETUTCDATE()
SET @nowLocal = GETDATE()
INSERT [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
(SessionId,
SessionItemShort,
Timeout,
Expires,
Locked,
LockDate,
LockDateLocal,
LockCookie)
VALUES
(@id,
@itemShort,
@timeout,
DATEADD(n, @timeout, @now),
0,
@now,
@nowLocal,
1)
RETURN 0'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempUpdateStateItemShort
@id
tSessionId,
@itemShort tSessionItemShort,
@timeout
int,
@lockCookie int
AS
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, @timeout, GETUTCDATE()),
SessionItemShort = @itemShort,
Timeout = @timeout,
Locked = 0
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempUpdateStateItemShortNullLong
@id
tSessionId,
@itemShort tSessionItemShort,
@timeout
int,
@lockCookie int
AS
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempUpdateStateItemLong
@id
tSessionId,
@itemLong tSessionItemLong,
@timeout
int,
@lockCookie int
AS
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, @timeout, GETUTCDATE()),
SessionItemLong = @itemLong,
Timeout = @timeout,
Locked = 0
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
ELSE
ELSE
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @cmd nchar(4000)
SET @cmd = N'
CREATE PROCEDURE dbo.TempRemoveStateItem
AS
@id
tSessionId,
@lockCookie int
DELETE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
WHERE SessionId = @id AND LockCookie = @lockCookie
RETURN 0'
EXEC(@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.TempResetTimeout
@id
tSessionId
AS
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, GETUTCDATE())
WHERE SessionId = @id
RETURN 0'
ELSE
SET @cmd = N'
CREATE PROCEDURE dbo.TempResetTimeout
@id
tSessionId
AS
UPDATE [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions
SET Expires = DATEADD(n, Timeout, GETDATE())
WHERE SessionId = @id
RETURN 0'
EXEC (@cmd)
GO
/*****************************************************************************/
DECLARE @ver int
EXEC dbo.GetMajorVersion @@ver=@ver OUTPUT
DECLARE @cmd nchar(4000)
IF (@ver >= 8)
SET @cmd = N'
CREATE PROCEDURE dbo.DeleteExpiredSessions
AS
SET NOCOUNT ON
SET DEADLOCK_PRIORITY LOW
DECLARE @now datetime
SET @now = GETUTCDATE()
CREATE TABLE #tblExpiredSessions
(
SessionID nvarchar(88) NOT NULL PRIMARY KEY
)
INSERT #tblExpiredSessions (SessionID)
SELECT SessionID
FROM [DatabaseNamePlaceHolder].dbo.ASPStateTempSessions WITH (RE
ADUNCOMMITTED)
IF @@ROWCOUNT <> 0
BEGIN
DECLARE ExpiredSessionCursor CURSOR LOCAL FORWARD_ONLY READ_ONLY
FOR SELECT SessionID FROM #tblExpiredSessions
DECLARE @SessionID nvarchar(88)
OPEN ExpiredSessionCursor
FETCH NEXT FROM ExpiredSessionCursor INTO @SessionID
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE FROM [DatabaseNamePlaceHolder].dbo.ASPStateTempSe
ssions WHERE SessionID = @SessionID AND Expires < @now
FETCH NEXT FROM ExpiredSessionCursor INTO @SessionID
END
CLOSE ExpiredSessionCursor
DEALLOCATE ExpiredSessionCursor
END
DROP TABLE #tblExpiredSessions
RETURN 0'
ELSE
s'
@freq_subday_type = 4,
@freq_subday_interval = 1,
@freq_relative_interval = 0,
@freq_recurrence_factor = 0,
@active_end_date = 99991231,
@active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
-- Add the Target Servers
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_na
me = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
PRINT
PRINT
PRINT
PRINT
''
'--------------------------------------------------'
'Completed execution of InstallSqlStateTemplate.SQL'
'--------------------------------------------------'
ad99/**********************************************************************/
/* InstallWebEventSqlProvider.SQL
*/
/*
*/
/* Installs the tables, triggers and stored procedures necessary for */
/* supporting the aspnet feature of ASP.Net
*/
/*
*/
/* InstallCommon.sql must be run before running this file.
*/
/*
** Copyright Microsoft, Inc. 2003
** All Rights Reserved.
*/
/**********************************************************************/
PRINT '----------------------------------------------------'
PRINT 'Starting execution of InstallWebEventSqlProvider.SQL'
PRINT '----------------------------------------------------'
GO
SET
SET
GO
SET
GO
SET
GO
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
DECLARE @dbname NVARCHAR(128)
SET @dbname = N'aspnetdb'
IF (NOT EXISTS (SELECT name
FROM master.dbo.sysdatabases
WHERE ('[' + name + ']' = @dbname OR name = @dbname)))
BEGIN
RAISERROR('The database ''%s'' cannot be found. Please run InstallCommon.sql f
irst.', 18, 1, @dbname)
END
GO
USE [aspnetdb]
GO
IF (NOT EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_WebEvent_Events')
AND (type = 'U')))
BEGIN
PRINT 'Creating the aspnet_WebEvent_Events table...'
CREATE TABLE dbo.aspnet_WebEvent_Events (
EventId
char(32)
PRIMARY KEY,
EventTimeUtc
datetime
NOT NULL,
EventTime
datetime
NOT NULL,
EventType
nvarchar(256)
NOT NULL,
EventSequence decimal(19,0)
NOT NULL, /* SQL7 doesn't support bi
gint */
EventOccurrence decimal(19,0)
NOT NULL, /* SQL7 doesn't support bi
gint */
EventCode
int
NOT NULL,
EventDetailCode int
NOT NULL,
Message
nvarchar(1024)
NULL,
ApplicationPath nvarchar(256)
NULL,
ApplicationVirtualPath nvarchar(256) NULL,
MachineName
nvarchar(256)
NOT NULL,
RequestUrl
nvarchar(1024)
NULL,
ExceptionType nvarchar(256)
NULL,
Details
ntext
NULL
)
END
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
/*************************************************************/
IF (EXISTS (SELECT name
FROM sysobjects
WHERE (name = N'aspnet_WebEvent_LogEvent')
AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_WebEvent_LogEvent
GO
CREATE PROCEDURE dbo.aspnet_WebEvent_LogEvent
@EventId
char(32),
@EventTimeUtc
datetime,
@EventTime
datetime,
@EventType
nvarchar(256),
@EventSequence decimal(19,0),
@EventOccurrence decimal(19,0),
@EventCode
int,
@EventDetailCode int,
@Message
nvarchar(1024),
@ApplicationPath nvarchar(256),
@ApplicationVirtualPath nvarchar(256),
@MachineName
nvarchar(256),
@RequestUrl
nvarchar(1024),
@ExceptionType nvarchar(256),
@Details
ntext
AS
BEGIN
INSERT
dbo.aspnet_WebEvent_Events
(
EventId,
EventTimeUtc,
EventTime,
EventType,
EventSequence,
EventOccurrence,
EventCode,
EventDetailCode,
Message,
ApplicationPath,
ApplicationVirtualPath,
MachineName,
RequestUrl,
ExceptionType,
Details
)
VALUES
(
@EventId,
@EventTimeUtc,
@EventTime,
@EventType,
@EventSequence,
@EventOccurrence,
@EventCode,
@EventDetailCode,
@Message,
@ApplicationPath,
@ApplicationVirtualPath,
@MachineName,
@RequestUrl,
@ExceptionType,
@Details
)
END
GO
/*************************************************************/
/*************************************************************/
IF ( NOT EXISTS ( SELECT name
FROM sysusers
WHERE issqlrole = 1
AND name = N'aspnet_WebEvent_FullAccess'))
EXEC sp_addrole N'aspnet_WebEvent_FullAccess'
GRANT EXECUTE ON dbo.aspnet_WebEvent_LogEvent TO aspnet_WebEvent_FullAccess
GRANT EXECUTE ON dbo.aspnet_CheckSchemaVersion TO aspnet_WebEvent_FullAccess
GRANT EXECUTE ON dbo.aspnet_RegisterSchemaVersion TO aspnet_WebEvent_FullAccess
GRANT EXECUTE ON dbo.aspnet_UnRegisterSchemaVersion TO aspnet_WebEvent_FullAcces
s
GO
/*************************************************************/
/*************************************************************/
---Create Health Monitoring schema version
-DECLARE @command nvarchar(4000)
SET @command = 'GRANT EXECUTE ON [dbo].aspnet_RegisterSchemaVersion TO ' + QUOTE
NAME(user)
EXECUTE (@command)
GO
EXEC [dbo].aspnet_RegisterSchemaVersion N'Health Monitoring', N'1', 1, 1
GO
/*************************************************************/
/*************************************************************/
DECLARE @command nvarchar(4000)
SET @command = 'REVOKE EXECUTE ON [dbo].aspnet_RegisterSchemaVersion FROM ' + QU
OTENAME(user)
EXECUTE (@command)
GO
PRINT '-----------------------------------------------------'
PRINT 'Completed execution of InstallWebEventSqlProvider.SQL'
PRINT '-----------------------------------------------------'
K<browsers>
<!-- Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML,
like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 -->
<gateway id="IPhone" parentID="Safari">
<identification>
<userAgent match="iPhone" />
</identification>
<capabilities>
<capability
<capability
<capability
<capability
</capabilities>
</gateway>
name="mobileDeviceModel"
name="mobileDeviceManufacturer"
name="isMobileDevice"
name="canInitiateVoiceCall"
value="IPhone" />
value="Apple" />
value="true" />
value="true" />
<identification>
<userAgent match="iPod" />
</identification>
<capabilities>
<capability name="mobileDeviceModel"
value="IPod" />
<capability name="mobileDeviceManufacturer"
value="Apple" />
<capability name="isMobileDevice"
value="true" />
</capabilities>
</gateway>
</browsers>e&Lb11<configuration>
<mscorlib>
<security>
<policy>
<PolicyLevel version="1">
<SecurityClasses>
<SecurityClass Name="AllMembershipCondition" Description
="System.Security.Policy.AllMembershipCondition, mscorlib, Version=4.0.0.0, Cult
ure=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="AspNetHostingPermission" Descriptio
n="System.Web.AspNetHostingPermission, System, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="ConfigurationPermission" Descriptio
n="System.Configuration.ConfigurationPermission, System.Configuration, Version=4
.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<SecurityClass Name="DnsPermission" Description="System.
Net.DnsPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a
5c561934e089"/>
<SecurityClass Name="EnvironmentPermission" Description=
"System.Security.Permissions.EnvironmentPermission, mscorlib, Version=4.0.0.0, C
ulture=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="FileIOPermission" Description="Syst
em.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neu
tral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="FirstMatchCodeGroup" Description="S
ystem.Security.Policy.FirstMatchCodeGroup, mscorlib, Version=4.0.0.0, Culture=ne
utral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="IsolatedStorageFilePermission" Desc
ription="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Ve
rsion=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="NamedPermissionSet" Description="Sy
stem.Security.NamedPermissionSet"/>
<SecurityClass Name="PrintingPermission" Description="Sy
stem.Drawing.Printing.PrintingPermission, System.Drawing, Version=4.0.0.0, Cultu
re=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<SecurityClass Name="ReflectionPermission" Description="
System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Cul
ture=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="RegistryPermission" Description="Sy
stem.Security.Permissions.RegistryPermission, mscorlib, Version=4.0.0.0, Culture
=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="SecurityPermission" Description="Sy
stem.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture
=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="SmtpPermission" Description="System
.Net.Mail.SmtpPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyTok
en=b77a5c561934e089"/>
<SecurityClass Name="SocketPermission" Description="Syst
em.Net.SocketPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToke
n=b77a5c561934e089"/>
class="FileIOPermission"
version="1"
Unrestricted="true"
s"
/>
<IPermission
class="IsolatedStorageFilePermission"
version="1"
Unrestricted="true"
/>
<IPermission
class="PrintingPermission"
version="1"
Level="DefaultPrinting"
/>
<IPermission
class="ReflectionPermission"
version="1"
Flags="ReflectionEmit, RestrictedMemberAcces
/>
<IPermission
class="RegistryPermission"
version="1"
Unrestricted="true"
/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution, ControlThread, ControlPrin
cipal, RemotingConfiguration"
/>
<IPermission
class="SmtpPermission"
version="1"
Access="Connect"
/>
<IPermission
class="SocketPermission"
version="1"
Unrestricted="true"
/>
<IPermission
class="SqlClientPermission"
version="1"
Unrestricted="true"
/>
<IPermission
class="WebPermission"
version="1"
Unrestricted="true"
/>
</PermissionSet>
</NamedPermissionSets>
<CodeGroup
class="FirstMatchCodeGroup"
version="1"
PermissionSetName="Nothing">
<IMembershipCondition
class="AllMembershipCondition"
version="1"
SetName="Nothing">
/>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$AppDirUrl$/*"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$CodeGen$/*"
/>
</CodeGroup>
<CodeGroup class="UnionCodeGroup" version="1" Permission
<IMembershipCondition
class="ZoneMembershipCondition"
version="1"
Zone="MyComputer" />
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Microsoft_Strong_Name"
Description="This code group grants code sig
ned with the Microsoft strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0024000004800000940000000
60200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AE
C8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC
607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745
D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Ecma_Strong_Name"
Description="This code group grants code sig
ned with the ECMA strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0000000000000000040000000
0000000"
/>
</CodeGroup>
</CodeGroup>
</CodeGroup>
</PolicyLevel>
</policy>
</security>
</mscorlib>
</configuration>
I N<configuration>
<mscorlib>
<security>
<policy>
<PolicyLevel version="1">
<SecurityClasses>
<SecurityClass Name="AllMembershipCondition" Description
="System.Security.Policy.AllMembershipCondition, mscorlib, Version=4.0.0.0, Cult
ure=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="AspNetHostingPermission" Descriptio
n="System.Web.AspNetHostingPermission, System, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="FileIOPermission" Description="Syst
em.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neu
tral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="FirstMatchCodeGroup" Description="S
ystem.Security.Policy.FirstMatchCodeGroup, mscorlib, Version=4.0.0.0, Culture=ne
utral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="IsolatedStorageFilePermission" Desc
ription="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Ve
rsion=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="NamedPermissionSet" Description="Sy
stem.Security.NamedPermissionSet"/>
<SecurityClass Name="SecurityPermission" Description="Sy
stem.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture
=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="StrongNameMembershipCondition" Desc
ription="System.Security.Policy.StrongNameMembershipCondition, mscorlib, Version
=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="UnionCodeGroup" Description="System
.Security.Policy.UnionCodeGroup, mscorlib, Version=4.0.0.0, Culture=neutral, Pub
licKeyToken=b77a5c561934e089"/>
<SecurityClass Name="UrlMembershipCondition" Description
="System.Security.Policy.UrlMembershipCondition, mscorlib, Version=4.0.0.0, Cult
ure=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="ZoneMembershipCondition" Descriptio
n="System.Security.Policy.ZoneMembershipCondition, mscorlib, Version=4.0.0.0, Cu
lture=neutral, PublicKeyToken=b77a5c561934e089"/>
</SecurityClasses>
<NamedPermissionSets>
<PermissionSet
class="NamedPermissionSet"
version="1"
Unrestricted="true"
Name="FullTrust"
Description="Allows full access to all resources
"
/>
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="Nothing"
Description="Denies all resources, including the
right to execute"
SetName="Nothing">
/>
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="ASP.Net">
<IPermission
class="AspNetHostingPermission"
version="1"
Level="Low"
/>
<IPermission
class="FileIOPermission"
version="1"
Read="$AppDir$"
PathDiscovery="$AppDir$"
/>
<IPermission
class="IsolatedStorageFilePermission"
version="1"
Allowed="AssemblyIsolationByUser"
UserQuota="1048576"
/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution"
/>
</PermissionSet>
</NamedPermissionSets>
<CodeGroup
class="FirstMatchCodeGroup"
version="1"
PermissionSetName="Nothing">
<IMembershipCondition
class="AllMembershipCondition"
version="1"
/>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$AppDirUrl$/*"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$CodeGen$/*"
/>
</CodeGroup>
<CodeGroup class="UnionCodeGroup" version="1" Permission
<IMembershipCondition
class="ZoneMembershipCondition"
version="1"
Zone="MyComputer" />
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Microsoft_Strong_Name"
Description="This code group grants code sig
ned with the Microsoft strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0024000004800000940000000
60200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AE
C8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC
607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745
D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Ecma_Strong_Name"
Description="This code group grants code sig
ned with the ECMA strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0000000000000000040000000
0000000"
/>
</CodeGroup>
</CodeGroup>
</CodeGroup>
</PolicyLevel>
</policy>
</security>
</mscorlib>
</configuration>
u--<configuration>
<mscorlib>
<security>
<policy>
<PolicyLevel version="1">
<SecurityClasses>
<SecurityClass Name="AllMembershipCondition" Description
="System.Security.Policy.AllMembershipCondition, mscorlib, Version=4.0.0.0, Cult
ure=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="AspNetHostingPermission" Descriptio
n="System.Web.AspNetHostingPermission, System, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="DnsPermission" Description="System.
Net.DnsPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a
5c561934e089"/>
<SecurityClass Name="EnvironmentPermission" Description=
"System.Security.Permissions.EnvironmentPermission, mscorlib, Version=4.0.0.0, C
ulture=neutral, PublicKeyToken=b77a5c561934e089"/>
/>
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="ASP.Net">
<IPermission
class="AspNetHostingPermission"
version="1"
Level="Medium"
/>
<IPermission
class="DnsPermission"
version="1"
Unrestricted="true"
/>
<IPermission
class="EnvironmentPermission"
version="1"
Read="TEMP;TMP;USERNAME;OS;COMPUTERNAME"
/>
<IPermission
class="FileIOPermission"
version="1"
Read="$AppDir$"
Write="$AppDir$"
Append="$AppDir$"
PathDiscovery="$AppDir$"
/>
<IPermission
class="IsolatedStorageFilePermission"
version="1"
Allowed="AssemblyIsolationByUser"
UserQuota="9223372036854775807"
/>
<IPermission
class="PrintingPermission"
version="1"
Level="DefaultPrinting"
/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution, ControlThread, ControlPrin
cipal, RemotingConfiguration"
/>
<IPermission
class="SmtpPermission"
version="1"
Access="Connect"
/>
<IPermission
class="SqlClientPermission"
version="1"
Unrestricted="true"
/>
<IPermission
class="WebPermission"
version="1">
<ConnectAccess>
<URI uri="$OriginHost$"/>
SetName="Nothing">
</ConnectAccess>
</IPermission>
<IPermission
class="ReflectionPermission"
version="1"
Flags="RestrictedMemberAccess"/>
</PermissionSet>
</NamedPermissionSets>
<CodeGroup
class="FirstMatchCodeGroup"
version="1"
PermissionSetName="Nothing">
<IMembershipCondition
class="AllMembershipCondition"
version="1"
/>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$AppDirUrl$/*"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$CodeGen$/*"
/>
</CodeGroup>
<CodeGroup class="UnionCodeGroup" version="1" Permission
<IMembershipCondition
class="ZoneMembershipCondition"
version="1"
Zone="MyComputer" />
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Microsoft_Strong_Name"
Description="This code group grants code sig
ned with the Microsoft strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0024000004800000940000000
60200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AE
C8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC
607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745
D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Ecma_Strong_Name"
Description="This code group grants code sig
ned with the ECMA strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0000000000000000040000000
0000000"
/>
</CodeGroup>
</CodeGroup>
</CodeGroup>
</PolicyLevel>
</policy>
</security>
</mscorlib>
</configuration>
T<configuration>
<mscorlib>
<security>
<policy>
<PolicyLevel version="1">
<SecurityClasses>
<SecurityClass Name="AllMembershipCondition" Description
="System.Security.Policy.AllMembershipCondition, mscorlib, Version=4.0.0.0, Cult
ure=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="AspNetHostingPermission" Descriptio
n="System.Web.AspNetHostingPermission, System, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="FirstMatchCodeGroup" Description="S
ystem.Security.Policy.FirstMatchCodeGroup, mscorlib, Version=4.0.0.0, Culture=ne
utral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="NamedPermissionSet" Description="Sy
stem.Security.NamedPermissionSet"/>
<SecurityClass Name="SecurityPermission" Description="Sy
stem.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture
=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="StrongNameMembershipCondition" Desc
ription="System.Security.Policy.StrongNameMembershipCondition, mscorlib, Version
=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="UnionCodeGroup" Description="System
.Security.Policy.UnionCodeGroup, mscorlib, Version=4.0.0.0, Culture=neutral, Pub
licKeyToken=b77a5c561934e089"/>
<SecurityClass Name="UrlMembershipCondition" Description
="System.Security.Policy.UrlMembershipCondition, mscorlib, Version=4.0.0.0, Cult
ure=neutral, PublicKeyToken=b77a5c561934e089"/>
<SecurityClass Name="ZoneMembershipCondition" Descriptio
n="System.Security.Policy.ZoneMembershipCondition, mscorlib, Version=4.0.0.0, Cu
lture=neutral, PublicKeyToken=b77a5c561934e089"/>
</SecurityClasses>
<NamedPermissionSets>
<PermissionSet
class="NamedPermissionSet"
version="1"
Unrestricted="true"
Name="FullTrust"
"
right to execute"
SetName="Nothing">
/>
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="Nothing"
Description="Denies all resources, including the
/>
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="ASP.Net">
<IPermission
class="AspNetHostingPermission"
version="1"
Level="Minimal"
/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution"
/>
</PermissionSet>
</NamedPermissionSets>
<CodeGroup
class="FirstMatchCodeGroup"
version="1"
PermissionSetName="Nothing">
<IMembershipCondition
class="AllMembershipCondition"
version="1"
/>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$AppDirUrl$/*"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="ASP.Net">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$CodeGen$/*"
/>
</CodeGroup>
<CodeGroup class="UnionCodeGroup" version="1" Permission
<IMembershipCondition
class="ZoneMembershipCondition"
version="1"
Zone="MyComputer" />
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Microsoft_Strong_Name"
Description="This code group grants code sig
ned with the Microsoft strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0024000004800000940000000
60200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AE
C8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC
607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745
D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"
/>
</CodeGroup>
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Ecma_Strong_Name"
Description="This code group grants code sig
ned with the ECMA strong name full trust. ">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="0000000000000000040000000
0000000"
/>
</CodeGroup>
</CodeGroup>
</CodeGroup>
</PolicyLevel>
</policy>
</security>
</mscorlib>
</configuration>
3
dataGrid.HeaderStyle.HorizontalAlign = DirectionalityHorizontalAlign;
}
</script>
<%-- Cause the textbox to submit the page on enter, raising server side onclick-%>
<input type="text" style="visibility:hidden"/>
<br/>
<table cellspacing="0" cellpadding="0" border="0" width="580">
<tbody>
<tr valign="top">
<td height="100%" class="lrbBorders">
<asp:gridView runat="server" id="dataGrid" allowpaging="true" autoge
neratecolumns="False" border="0" cellpadding="5" cellspacing="0" OnPageIndexCha
nging="IndexChanged" pagesize="7" width="100%" UseAccessibleHeader="true">
="#009999"/>
<itemTemplate>
<asp:linkButton runat="server" id="linkButton1" text
="<%$ Resources:Manage %>" commandName="ManageRole" toolTip='<%# GetToolTip("Man
age",Container.DataItem.ToString()) %>' commandArgument='<%#Container.DataItem%>
' onCommand='LinkButtonClick'/>
</itemTemplate>
</asp:templateField>
<asp:templateField runat="server" >
<itemStyle horizontalAlign="center"/>
<itemTemplate>
<asp:linkButton runat="server" id="linkButton2" text
="<%$ Resources:Delete %>" commandName="DeleteRole" toolTip='<%# GetToolTip("Del
ete",Container.DataItem.ToString()) %>' commandArgument='<%#Container.DataItem%>
' onCommand='LinkButtonClick'/>
</itemTemplate>
</asp:templateField>
</columns>
</asp:gridView>
</td>
</tr>
</tbody>
</table>
</asp:content>
<%-- Confirmation Dialog --%>
<asp:content runat="server" contentplaceholderid="dialogTitle">
<asp:literal runat="server" text="<%$ Resources:UserManagement %>" />
</asp:content>
</data>
<data name="Manage" type="System.String">
<value>Manage</value>
</data>
<data name="ManageRoles" type="System.String">
<value>Manage Roles</value>
</data>
<data name="NewRoleName" type="System.String">
<value>New role name:</value>
</data>
<data name="No" type="System.String">
<value>No</value>
</data>
<data name="RoleName" type="System.String">
<value>Role Name</value>
</data>
<data name="UserManagement" type="System.String">
<value>User Management</value>
</data>
<data name="Yes" type="System.String">
<value>Yes</value>
</data>
</root>;^Bm\;\;<%@ page masterPageFile="~/WebAdminWithConfirmation.master" inher
its="System.Web.Administration.ApplicationConfigurationPage"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Web.Administration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server" language="cs">
private enum LocationType {
Local = 0,
Inherited = 1,
Overridden = 2,
}
private WebAdminWithConfirmationMasterPage Master {
get {
return (WebAdminWithConfirmationMasterPage)base.Master;
}
}
private void AddAppSettingRow(DataTable dataTable, string name, string value, Lo
cationType locationType) {
DataRow row = dataTable.NewRow();
// Assume the columns are in expected order when the table is created
row[0] = name;
row[1] = value;
row[2] = locationType;
}
dataTable.Rows.Add(row);
labelCell.Text = numOfAppSettingsText;
AppSettingGridView.HeaderStyle.HorizontalAlign = DirectionalityHorizonta
// Go to confirmation UI
Master.SetDisplayUI(true);
tempString = HttpUtility.HtmlDecode(valueCell.Text.ToString());
editUrl.Append("&value=");
tempString = HttpUtility.UrlEncode(tempString);
editUrl.Append(tempString);
}
Response.Redirect(editUrl.ToString());
Master.SetDisplayUI(false);
<%# GetLocationTypeText(
(LocationType) DataBinder.Eval(Container.DataItem, "LocationType"))%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="<%$
Resources:NameHeader %>" DataField="Name" ItemStyle-Width="20%"/>
<asp:BoundField HeaderText="<%$
Resources:ValueHeader %>" DataField="Value" ItemStyle-Width="20%"/>
th="15%">
erver" commandname="Edit" forecolor="blue"
<asp:TemplateField ItemStyle-Wid
<ItemTemplate>
<asp:LinkButton runat="s
Text='<%
# (((LocationType) DataBinder.Eval(Container.DataItem, "LocationType")) == Locat
ionType.Inherited) ? (string)GetLocalResourceObject("OverrideLinkText") : (strin
g)GetLocalResourceObject("EditLinkText") %>'
ToolTip=
'<%# (((LocationType) DataBinder.Eval(Container.DataItem, "LocationType")) == Lo
cationType.Inherited) ? GetToolTip("OverrideLinkToolTip",DataBinder.Eval(Contain
er.DataItem, "Name").ToString()) : GetToolTip("EditLinkToolTip",DataBinder.Eval(
Container.DataItem, "Name").ToString()) %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="s
Text="<%
$ Resources:DeleteLinkText %>" toolTip='<%# GetToolTip("DeleteLinkToolTip",DataB
inder.Eval(Container.DataItem, "Name").ToString()) %>'
Enabled=
'<%# (((LocationType) DataBinder.Eval(Container.DataItem, "LocationType")) == Lo
cationType.Inherited) ? false : true %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:Gridview>
</td>
</tr>
<tr class="gridPagerStyle" style="padding-left:5
;">
<td>
<asp:Label runat="server" id="NumOfAppSe
ttingsLabel"/>
</td>
</tr>
</table>
</td>
</tr>
<tr class="bodyText" valign="top" >
<td>
<asp:HyperLink runat="server" NavigateUrl="CreateApp
Setting.aspx" Text="<%$ Resources:CreateAppSettingLinkText %>"/>
<td>
</tr>
</table>
</td>
<td width="100"/>
</tr>
</table>
</asp:content>
<asp:content runat="server" contentplaceholderid="buttons">
<asp:Button ValidationGroup="none" Text="<%$ Resources:GlobalResources,BackB
uttonLabel %>" id="BackButton" onclick="ReturnToPreviousPage" runat="server"/>
</asp:content>
<%-- Confirmation Dialog --%>
<asp:content runat="server" contentplaceholderid="dialogTitle">
<asp:Literal runat="server" Text="<%$ Resources:DeleteAppSettingTitle %>"/>
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogContent">
<asp:HiddenField runat="server" id="Name"/>
<table cellspacing="4" cellpadding="4">
<tr class="bodyText">
<td>
<asp:Image runat="server" ImageUrl="~/Images/alert_lrg.gif"/>
</td>
<td>
<asp:Literal runat="server" id="DeleteName"/>
</td>
</tr>
</table>
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogBottomLeftButton">
<asp:Button runat="server" OnClick="Yes_Click" Text="<%$ Resources:GlobalRes
ources,YesButtonLabel %>" width="100"/>
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogBottomRightButton">
<asp:Button runat="server" OnClick="No_Click" Text="<%$ Resources:GlobalReso
urces,NoButtonLabel %>" width="75"/>
</asp:content>
aHca
</data>
<data name="OverrideLinkText" type="System.String">
<value>Override</value>
</data>
<data name="OverrideLinkToolTip" type="System.String">
<value>Override application setting</value>
</data>
<data name="SourceHeader" type="System.String">
<value>Source</value>
</data>
<data name="Title" type="System.String">
<value>Manage Application Settings</value>
</data>
<data name="TitleForSite" type="System.String">
<value>Manage Application Settings For Site: {0}</value>
</data>
<data name="ValueHeader" type="System.String">
<value>Value</value>
</data>
</root>
(!]3131<%@ page masterPageFile="~/WebAdminWithConfirmation.master" inherits="Syst
em.Web.Administration.ProvidersPage"%>
<%@ MasterType virtualPath="~/WebAdminWithConfirmation.master" %>
<%@ Register TagPrefix="uc" TagName="ProviderList" Src="ProviderList.ascx"%>
<%@ Import Namespace="System.Reflection" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server" language="cs">
private int _parentProviderCount = 0;
private string CurrentProvider {
get {
return (string)Session["WebAdminManageConsolidatedProvidersCurrentProvid
er"];
}
set {
Session["WebAdminManageConsolidatedProvidersCurrentProvider"] = value;
}
}
private void BackToPreviousPage(object sender, EventArgs e) {
ReturnToPreviousPage(sender, e);
}
private void BindProviderList(ProviderListUserControl providerList) {
string appPath = ApplicationPath;
int trailingSlash = appPath.LastIndexOf("/");
string parentAppPath = appPath.Substring(0, trailingSlash);
if (parentAppPath != null && parentAppPath.Length == 0) {
parentAppPath = null;
}
Configuration config = OpenWebConfiguration(appPath);
MembershipSection membershipSection = (MembershipSection)config.GetSection("
system.web/membership");
RoleManagerSection roleManagerSection = (RoleManagerSection)config.GetSectio
n("system.web/roleManager");
Configuration parentConfig = OpenWebConfiguration(parentAppPath);
rs;
here
// if so, then grab the connection string, it must be the same for the role
provider as well
foreach (System.Configuration.ProviderSettings mps in membershipProviders) {
string name = mps.Name;
string connectionString = mps.Parameters["connectionStringName"];
foreach(GroupedProperty oneGroupedProvider in GroupedProvidersList) {
if (name == oneGroupedProvider.MembershipProvider) {
n string
if (HasProviderInProviderSettings(roleManagerProviders, oneGroup
edProvider.RoleProvider, connectionString)) {
groupedProvidersFiltered.Add(oneGroupedProvider);
string tempDescription = oneGroupedProvider.Description;
nk...
// use the type from the membership provider for the test li
providersArray.Add(new ProviderListUserControl.ProviderListI
tems(oneGroupedProvider.Name, tempDescription, connectionString, mps.Type, true)
);
}
}
}
}
foreach (System.Configuration.ProviderSettings mps in membershipProviders) {
string name = mps.Name;
string connectionString = mps.Parameters["connectionStringName"];
if (HasProviderInProviderSettings(roleManagerProviders, name, connection
String)) {
// Check if the same provider shows up in the parent config.
if (HasProviderInProviderSettings(membershipParentProviders, name, c
onnectionString) &&
HasProviderInProviderSettings(roleManagerParentProviders, name,
connectionString)) {
_parentProviderCount++;
}
providersArray.Add(new ProviderListUserControl.ProviderListItems(mps
.Name, mps.Parameters["description"], mps.Parameters["connectionStringName"], mp
s.Type, false));
}
}
providerList.DataSource = providersArray;
providerList.ParentProviderCount = _parentProviderCount;
string defaultMembershipProvider = membershipSection.DefaultProvider;
string defaultRoleProvider = roleManagerSection.DefaultProvider;
if (defaultMembershipProvider == defaultRoleProvider) {
for (int i = 0; i < providersArray.Count; i++) {
if (((ProviderListUserControl.ProviderListItems) providersArray[i]).
ProviderName == defaultMembershipProvider) {
providerList.SelectedIndex = i;
}
}
Session["DefaultProvider"] = defaultMembershipProvider;
} else {
// check if they are part of a group and select that group
string groupProviderName = String.Empty;
foreach (GroupedProperty oneGroupedProvider in groupedProvidersFiltered)
{
if (oneGroupedProvider.MembershipProvider == defaultMembershipProvid
er) {
if (oneGroupedProvider.RoleProvider == defaultRoleProvider) {
groupProviderName = oneGroupedProvider.Name;
for (int i = 0; i < providersArray.Count; i++) {
if (((ProviderListUserControl.ProviderListItems) provide
rsArray[i]).ProviderName == groupProviderName) {
providerList.SelectedIndex = i;
}
}
Session["DefaultProvider"] = groupProviderName;
}
}
}
}
}
providerList.DataBind();
found = true;
break;
}
}
return found;
SaveConfig(config);
BindProviderLists();
nation */});
}
}
catch {
good = false;
}
return good;
}
private bool TestConnectionString(object sender, EventArgs e) {
LinkButton b = sender as LinkButton;
string connectionString = null;
try {
Configuration config = OpenWebConfiguration(ApplicationPath);
ConnectionStringsSection connectionStringSection = (ConnectionString
sSection)config.GetSection("connectionStrings");
// Review: Management API doesn't allow retrieve a connection string
setting via direct name look up
// Need to create an object with the name set for looking up instead
.
ConnectionStringSettings css = new ConnectionStringSettings();
css.Name = b.CommandArgument /* connection string name */;
css = connectionStringSection.ConnectionStrings[connectionStringSect
ion.ConnectionStrings.IndexOf(css)];
connectionString = css.ConnectionString;
}
catch {
return false;
}
if (b.CommandName.Contains("Sql")) {
return TestConnectionHelper(connectionString);
} else {
return true;
}
}
private void TestConnection(object sender, EventArgs e) {
bool good = TestConnectionString(sender, e);
LinkButton b = (LinkButton) sender;
bool isSql = b.CommandName.Contains("Sql");
mv1.ActiveViewIndex = 1;
testConnectionLiteral.Text = TestConnectionText(good, isSql);
OKButton.Visible = true;
Master.SetDisplayUI(true /* confirmation */);
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
runat="server" language="cs">
const string SELECTED_RULE = "WebAdminSelectedRule";
const string RULES = "WebAdminRules";
const string NO_DELETE_RULES = "WebAdminNoDeleteRules";
const string PARENT_RULE_COUNT = "WebAdminParentRuleCount";
const string SELECTED_ITEM = "WebAdminSelectedItem";
}
set {
Session[PARENT_RULE_COUNT] = value;
}
i++;
Session[NO_DELETE_RULES] = arrNoDelete;
builder.Append(rule.Action);
int i = 0;
foreach (string u in rule.Users) {
if (i > 0) {
builder.Append(", " + u);
}
else {
builder.Append(" " + u);
}
i++;
}
i = 0;
foreach (string r in rule.Roles) {
if (i > 0) {
builder.Append(", " + r);
}
else {
builder.Append(" " + r);
}
i++;
}
RuleDescription.Text = builder.ToString();
Master.SetDisplayUI(true);
Session["ItemIndex"] = item.RowIndex;
builder2.Append(builder.ToString());
return builder2.ToString();
} else {
return builder.ToString();
}
}
if (!entryIsDeleteable) {
return entryIsDeleteable;
}
foreach (int index1 in NotDeleteableRules) {
if (index1 == rowIndex) {
entryIsDeleteable = false;
}
}
return entryIsDeleteable;
UpdateRules();
BindGrid();
dataGrid.SelectedIndex = selectedRule + 1;
UpdateRowColors(dataGrid, dataGrid.Rows[selectedRule + 1]);
SelectedRule = selectedRule + 1;
UpdateUpDownButtons();
PopulateChildren(n, CurrentPath);
}
dataGrid.HeaderStyle.HorizontalAlign = DirectionalityHorizontalAlign;
HighlightSelectedNode(tv.Nodes[0], CurrentPath);
UpdateRowColors(dataGrid, row);
UpdateUpDownButtons();
SetItemColorRecursive(item, Color.White);
// Review: best practice for a naming container inside a user control.
string id = item.UniqueID;
int i = id.IndexOf(((GridView)dataGrid).ID);
id = id.Substring(i);
i = id.IndexOf("$");
id = id.Substring(i + 1);
Session[SELECTED_ITEM] = id ;
// auth.IsModified = true;
SaveConfig(config);
</script>
<asp:content runat="server" contentplaceholderid="buttons">
<asp:button ValidationGroup="none" runat="server" id="button1" text="<%$ Resourc
es:Done %>" onclick="ReturnToPreviousPage"/>
</asp:content>
<asp:content runat="server" contentplaceholderid="titleBar">
<asp:literal runat="server" text="<%$ Resources:ManageAccessRules %>" />
</asp:content>
<asp:content runat="server" contentplaceholderid="content" >
<asp:literal runat="server" text="<%$ Resources:Instructions %>" />
<table width="100%">
<tr>
<td width="80%">
<table cellspacing="0" width="100%" cellpadding="4" rules="none" bor
dercolor="#CCDDEF" border="1" style="border-color:#CCDDEF;border-style:None;bord
er-collapse:collapse;">
<tr class="callOutStyle">
<td colspan="3" id="ManageAccessRulesHeader"><h1 class="call
OutHeaderStyle"><asp:literal runat="server" text="<%$ Resources:ManageAccessRule
s %>"/></h1></td>
</tr>
<tr align="=<% DirectionalityHorizontalAlign.ToString(); %>">
<td valign="top" width="200px" align="=<% DirectionalityHori
zontalAlign.ToString(); %>">
<asp:panel runat="server" id="panel1" scroll
bars="auto" height="150px" width="200px" cssclass="bodyTextNoPadding">
<asp:treeView runat="server" id="tv" onS
electedNodeChanged="TreeNodeSelected" onTreeNodeExpanded="TreeNodeExpanded" node
Style-cssClass="bodyTextLowPadding" >
<RootNodeStyle ImageUrl="../../image
s/folder.gif" />
<ParentNodeStyle ImageUrl="../../ima
ges/folder.gif" />
<LeafNodeStyle ImageUrl="../../image
s/folder.gif" />
<nodestyle cssClass="bodyTextLowPadd
ing"/>
<selectedNodeStyle cssClass="bodyTex
tLowPaddingSelected"/>
</asp:treeView>
</asp:panel>
</td>
<td valign="top">
<asp:gridview runat="server" id="dataGrid" bordercolor="
#CCDDEF" allowsorting="true" gridlines="Horizontal"
borderstyle="None" cellpadding="4" autogeneratecolum
ns="False" onrowdatabound="ItemDataBound" width="100%" UseAccessibleHeader="true
">
le" />
" />
>
ect%>" visible="false">
<selectedrowstyle cssclass="gridSelectedRowStyle"/>
<pagerstyle forecolor="#000000" backcolor="#EEEEEE"/
<pagersettings mode="Numeric"/>
<columns>
<asp:templatefield headertext="<%$ Resources:Sel
<itemtemplate>
<asp:linkbutton runat="server" commandna
me="Select" forecolor='black' onclick="SelectClick" text=""/>
</itemtemplate>
</asp:templatefield>
mission %>">
<itemtemplate>
<asp:label runat="server" id="select" en
abled="<%# IsEntryDeleteable(((GridViewRow) Container).RowIndex) %>" text="<%#Ge
tAction((AuthorizationRule)Container.DataItem)%>"/>
</itemtemplate>
</asp:templatefield>
rsAndRoles %>">
<itemtemplate>
<asp:linkbutton runat="server" id="selec
tme" enabled="<%# IsEntryDeleteable(((GridViewRow) Container).RowIndex) %>" fore
color="black" onclick="SelectClick" text="<%#GetUsersAndRoles((AuthorizationRule
)Container.DataItem, true)%>"/>
</itemtemplate>
</asp:templatefield>
ete %>">
<itemtemplate>
<asp:linkbutton runat="server" id="delet
e" enabled="<%# IsEntryDeleteable(((GridViewRow) Container).RowIndex) %>" foreco
lor='black' onClick="DeleteRule" text="<%$ Resources:Delete %>" toolTip='<%# Get
ToolTip("Delete",GetUsersAndRoles((AuthorizationRule)Container.DataItem, false))
%>'/>
</itemtemplate>
</asp:templatefield>
</columns>
</asp:gridview>
<asp:linkButton runat="server" id="linkButton1" cssClass
="bodyTextNoPadding" text="<%$ Resources:AddNewAccessRule %>" onClick="RedirectT
oCreatePermission"/>
</td>
<td valign="top">
<asp:button runat="server" id="moveUp" text="<%$ Resourc
es:MoveUp %>" enabled="false" onClick="MoveRuleUp" width="110px"/>
<br/>
<asp:button runat="server" id="moveDown" text="<%$ Resou
rces:MoveDown %>" enabled="false" onClick="MoveRuleDown" width="110px"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</asp:content>
<%-- Confirmation Dialog --%>
<asp:content runat="server" contentplaceholderid="dialogTitle">
<asp:literal runat="server" text="<%$ Resources:RuleManagement %>" />
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogContent">
<img src="../../Images/alert_lrg.gif"/>
<asp:literal runat="server" text="<%$ Resources:AreYouSure %>" /> "<asp:Labe
l runat=server id="RuleDescription" />"?
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogBottomLeftButton">
<asp:Button runat="server" OnClick="Yes_Click" Text="<%$ Resources:Yes %>" w
idth="100"/>
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogBottomRightButton">
<asp:Button runat="server" OnClick="No_Click" Text="<%$ Resources:No %>" wid
th="100"/>
</asp:content>
eIjHi
i
<?xml version="1.0" encoding="utf-8"?>
<root>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AddNewAccessRule" type="System.String">
<value>Add new access rule</value>
</data>
<data name="AreYouSure" type="System.String">
<value>Are you sure you want to delete the rule:</value>
</data>
<data name="Delete" type="System.String">
<value>Delete</value>
</data>
<data name="Done" type="System.String">
<value>Done</value>
</data>
<data name="Instructions" type="System.String">
<value>Use this page to manage access rules for your Web site. Rules are app
lied in order. The first rule that matches applies, and the permission in each r
ule overrides the permissions in all following rules. Use the <b>Move Up&l
t;/b> and <b>Move Down</b> buttons to change the order of the sel
ected rule.<br><br>Rules that appear dimmed are inherited from the p
arent and cannot be changed at this level.</value>
</data>
<data name="ManageAccessRules" type="System.String">
<value>Manage Access Rules</value>
</data>
<data name="MoveDown" type="System.String">
<value>Move Down</value>
</data>
<data name="MoveUp" type="System.String">
<value>Move Up</value>
</data>
<data name="No" type="System.String">
<value>No</value>
</data>
<data name="Permission" type="System.String">
<value>Permission</value>
</data>
<data name="RuleManagement" type="System.String">
<value> Rule Management</value>
</data>
<data name="Select" type="System.String">
<value>Select</value>
</data>
<data name="UsersAndRoles" type="System.String">
<value>Users and Roles</value>
</data>
<data name="Yes" type="System.String">
<value>Yes</value>
</data>
<data name="BracketAll" type="System.String">
<value>[all]</value>
</data>
<data name="BracketAnonymous" type="System.String">
<value>[anonymous]</value>
</data>
<data name="Allow" type="System.String">
<value>Allow</value>
</data>
<data name="Deny" type="System.String">
<value>Deny</value>
</data>
</root> {V%%<%@ page masterPageFile="~/WebAdminWithConfirmation.master" inherits="Sys
tem.Web.Administration.ProvidersPage"%>
<%@ Register TagPrefix="uc" TagName="ProviderList" Src="ProviderList.ascx"%>
<%@ MasterType virtualPath="~/WebAdminWithConfirmation.master" %>
<%@ Import Namespace="System.Reflection" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server" language="cs">
private void BackToPreviousPage(object sender, EventArgs e) {
ReturnToPreviousPage(sender, e);
}
private void BindProviderList(ProviderSettingsCollection providers,
string defaultProvider,
ProviderListUserControl providerList) {
int i = 0;
foreach(System.Configuration.ProviderSettings ps in providers){
if (ps.Name == defaultProvider) {
providerList.SelectedIndex = i;
}
i++;
}
providerList.DataBind();
roleManagerSection.DefaultProvider = e.ProviderName;
break;
default:
throw new HttpException((string)String.Format((string)GetLocalResour
ceObject("UnrecognizedService"), e.ServiceName));
}
SaveConfig(config);
BindProviderLists();
connectionString = css.ConnectionString;
}
catch {
return false;
}
if (b.CommandName.Contains("Sql")) {
return TestConnectionHelper(connectionString);
} else {
return true;
}
OKButton.Visible = true;
Master.SetDisplayUI(true /* confirmation */);
OnTestConnection="TestConnection" />
</td>
</tr>
<tr height="1%">
<td/>
</td>
</tr>
<tr height="1%">
<td>
<uc:ProviderList runat="server" id="RoleProviderList"
HeaderText="<%$ Resources:RoleProvider %>" Serv
iceName="roleManager"
OnSelectProvider="SelectProvider"
OnTestConnection="TestConnection"/>
</td>
</tr>
<tr height="1%">
<td/>
</td>
</tr>
<tr height="1%">
<td/>
</td>
</tr>
<tr height="1%">
<td>
</td>
</tr>
<tr height="1%">
<td/>
</td>
</tr>
<tr height="1%">
<td>
</td>
</tr>
<tr height="93%">
<td/>
</td>
</tr>
</table>
</asp:content>
<asp:content runat="server" contentplaceholderid="buttons">
<asp:button ValidationGroup="none" text="<%$ Resources:Back %>" id="BackButt
on" onclick="BackToPreviousPage" runat="server"/>
</asp:content>
<%-- Confirmation Dialog --%>
<asp:content runat="server" contentplaceholderid="dialogTitle">
<asp:literal runat="server" text="<%$ Resources:ProviderManagement %>"/>
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogContent">
<asp:multiview runat="server" id="mv1" enableViewState="false" activeViewInd
ex="0">
if"/>
<asp:view runat="server">
<table cellspacing="4" cellpadding="4">
<tr class="bodyText">
<td valign="top">
<asp:Image runat="server" ImageUrl="~/Images/alert_lrg.g
</td>
<td>
<asp:literal runat="server" id="areYouSureLiteral" />
</td>
</tr>
</table>
</asp:view>
<asp:view runat="server">
<asp:label runat="server" id="testConnectionLiteral"/>
</asp:view>
</asp:multiview>
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogBottomLeftButton">
</asp:content>
<asp:content runat="server" contentplaceholderid="dialogBottomRightButton">
<asp:Button runat="server" id="OKButton" enableViewState="false" OnClick="OK
_Click" Text="<%$ Resources:OK%>" visible="false" width="75"/>
</asp:content>
D,
<?xml version="1.0" encoding="utf-8"?>
<root>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Back" type="System.String">
<value>Back</value>
</data>
<data name="ManageProviders" type="System.String">
<value>Manage Providers</value>
</data>
<data name="No" type="System.String">
<value>No</value>
</data>
<data name="ProviderManagement" type="System.String">
<value>Provider Management</value>
</data>
<data name="OK" type="System.String">
<value>OK</value>
</data>
<data name="UseThisPage" type="System.String">
<value>Use this page to select a provider for each feature.</value>
</data>
<data name="Yes" type="System.String">
<value>Yes</value>
</data>
<data name="MembershipProvider" type="System.String">
<value>Membership Provider</value>
</data>
<data name="AddMembershipProvider" type="System.String">
<value>Add new membership provider</value>
</data>
<data name="RoleProvider" type="System.String">
<value>Role Provider</value>
</data>
<data name="AddRoleProvider" type="System.String">
<value>Add new role provider</value>
</data>
<data name="SiteCounterProvider" type="System.String">
<value>Site Counter Provider</value>
</data>
<data name="AddSiteCounterProvider" type="System.String">
<value>Add new site counter provider</value>
</data>
<data name="PageCounterProvider" type="System.String">
<value>Page Counter Provider</value>
</data>
<data name="AddPageCounterProvider" type="System.String">
<value>Add new page counter provider</value>
</data>
<data name="UnrecognizedService" type="System.String">
<value>Unrecognized service name: {0}</value>
</data>
</root>
}2w9'9'<%@ Page masterPageFile="~/WebAdminButtonRow.master" inherits="System.Web.
Administration.SecurityPage"%>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Web.Administration" %>
<%@ Import Namespace="System.Web.Configuration" %>
<script runat="server" language="cs">
private const string DATA_SOURCE = "WebAdminDataSource";
public void SetDataSource(object v) {
Session[DATA_SOURCE] = v;
}
public void BindGrid(bool displayUsersNotFound) {
dataGrid.DataSource = Session[DATA_SOURCE];
dataGrid.DataBind();
if (dataGrid.Rows.Count == 0) {
if (displayUsersNotFound) {
notFoundUsers.Visible = true;
}
}
}
private void DataGrid_RowDataBound(object sender, GridViewRowEventArgs e) {
AddTitleAttributeOnRowDataBound(e, "UserInRoleCheckBox");
}
}
private void PopulateRepeaterDataSource() {
PopulateRepeaterDataSource (repeater);
}
protected override void OnPreRender(EventArgs e) {
base.OnPreRender(e);
if (dataGrid.Rows.Count == 0) {
containerTable.Visible = false;
}
else {
containerTable.Visible = true;
}
}
public void RedirectToAddUser(object sender, EventArgs e) {
// do not prepend ~/ to this path since it is not at the root
Response.Redirect("adduser.aspx");
}
public void RetrieveLetter(object sender, RepeaterCommandEventArgs e) {
RetrieveLetter(sender, e, dataGrid, (string)GetLocalResourceObject("All"));
SetDataSource(dataGrid.DataSource);
BindGrid(true);
}
public void SearchForUsers(object sender, EventArgs e) {
SearchForUsers(sender, e, repeater, dataGrid, dropDown1, textBox1);
SetDataSource(dataGrid.DataSource);
BindGrid(true);
//multiView1.ActiveViewIndex = 0;
}
</script>
<asp:content runat="server" contentplaceholderid="titleBar">
<asp:literal runat="server" text="<%$ Resources:ManageRoleMembership %>" />
</asp:content>
<asp:content runat="server" contentplaceholderid="buttons">
<asp:button ValidationGroup="none" runat="server" id="button1" text="<%$ Resourc
es:Back %>" onclick="ReturnToPreviousPage"/>
</asp:content>
<asp:content runat="server" contentplaceholderid="content">
<%-- Cause the textbox to submit the page on enter, raising server side onclick-%>
<input type="text" style="visibility:hidden"/>
<table width="100%">
<tbody>
<tr>
<td>
<span class="bodyTextNoPadding">
<asp:literal runat="server" text="<%$ Resources:Instructions %>" />
<br/>
<br/>
<asp:literal runat="server" text="<%$ Resources:Role %>" />
<asp:label id="roleName" runat="server" font-bold="true">
</asp:label>
</span>
</td>
</tr>
<tr>
<td>
<table>
<tbody>
<tr valign="top">
<td>
<table cellspacing="0" cellpadding="5" class="lrbBorders
" width="750"/>
<tbody>
<tr>
<td class="callOutStyle">
<h1 class="callOutHeaderStyle">
<asp:literal runat="server" text="<%$ Resources:Sear
</h1>
</td>
</tr>
<tr >
<td class="bodyTextNoPadding">
<asp:Label id="SearchByLabel" runat="server" AssociatedC
ontrolID="dropDown1" text="<%$ Resources:SearchBy %>" />
<asp:dropdownlist id="dropDown1" runat="server">
<asp:listitem runat="server" id="listItem1" text="<%$ Re
sources:Username %>"/>
<asp:listitem runat="server" id="listItem2" text="<%$ Re
sources:Email %>"/>
</asp:dropdownlist>
<asp:Label id="SearchForLabel" runat="server" Asso
ciatedControlID="textBox1" text="<%$ Resources:For %>"/>
<asp:textbox runat="server" id="textBox1" width="11em"/>
<asp:button runat="server" id="button2" onclick="SearchF
orUsers" text="<%$ Resources:FindUser %>"/>
<br />
<asp:Label runat="server" id="alphabetInfo" Text="<%$ Res
ources:GlobalResources,AlphabetInfo %>"/><br/>
<asp:repeater runat="server" id="repeater" onitemcommand
="RetrieveLetter">
<itemtemplate>
<asp:linkbutton runat="server" id="linkButton1" text="<%
#Container.DataItem%>" forecolor="black" commandname="Display" commandargument="
<%#Container.DataItem%>" />
</itemtemplate>
</asp:repeater>
</td>
</tr>
</tbody>
</table>
<br />
<table id="containerTable" runat="server" border="0" cellspacing="0"
cellpadding="0" class="itemDetailsContainer" width="750" >
<tbody>
<tr align="left" valign="top">
<td width="62%" height="100%" class="lrbBorders">
<asp:gridview runat="server" id="dataGrid" allowpaging="
true" border="0" cellspacing="0" cellpadding="5" autogeneratecolumns="False" oni
temdatabound="ItemDataBound" onpageindexchanging="IndexChanged" pagesize="7" wid
th="100%" UseAccessibleHeader="true" OnRowDataBound="DataGrid_RowDataBound">
<rowstyle cssclass="gridRowStyle" />
<alternatingrowstyle cssclass="gridAlternatingRowStyle"
/>
<headerstyle cssclass="callOutStyle" font-bold="true" he
ight="10"/>
<selectedrowstyle cssclass="gridSelectedRowStyle"/>
<pagerstyle cssclass="gridPagerStyle"/>
<pagersettings mode="Numeric"/>
<columns>
ces:Username %>">
<itemtemplate>
<asp:label runat="server" AssociatedControlID="UserInRol
eCheckBox" id="userNameLink"
forecolor='black' text='<%#DataBinder.Eval(Co
ntainer.DataItem, "UserName")%>'/>
</itemtemplate>
</asp:templatefield>
ces:UserInRole %>" >
</data>
</root> ad==<%@ Page masterPageFile="~/WebAdminWithConfirmation.master" inherits="Sys
tem.Web.Administration.SecurityPage"%>
<%@ MasterType virtualPath="~/WebAdminWithConfirmation.master" %>
<%@ Import Namespace="System.Web.Administration" %>
<script runat="server" language="cs">
private const string DATA_SOURCE = "WebAdminDataSource";
private const string DATA_SOURCE_ROLES = "WebAdminDataSourceRoles";
public void SetDataSourceRoles(object v) {
Session[DATA_SOURCE_ROLES] = v;
}
public void SetDataSource(object v) {
Session[DATA_SOURCE] = (MembershipUserCollection) v;
}
public void BindGrid(bool displayUsersNotCreated) {
DataGrid.DataSource = Session[DATA_SOURCE];
DataGrid.DataBind();
if (DataGrid.Rows.Count == 0) {
if(displayUsersNotCreated) {
noUsers.Visible = true;
}
else {
notFoundUsers.Visible = true;
}
}
}
public void IndexChanged(object sender, GridViewPageEventArgs e) {
DataGrid.PageIndex = e.NewPageIndex;
BindGrid(false);
}
public void Page_Load() {
noUsers.Visible = false;
if(!IsPostBack) {
PopulateRepeaterDataSource();
AlphabetRepeater.DataBind();
int total = 0;
MembershipUserCollection users = (MembershipUserCollection) CallWebAdmin
HelperMethod(true, "GetAllUsers",new object[] {0, Int32.MaxValue, total}, new Ty
pe[] {typeof(int),typeof(int),Type.GetType("System.Int32&")});
string[] roles = null;
if (IsRoleManagerEnabled()) {
roles = (string[]) CallWebAdminHelperMethod(false, "GetAllRoles",new
object[] {}, null);
}
SetDataSourceRoles(roles);
SetDataSource(users);
BindGrid(true);
DataGrid.HeaderStyle.HorizontalAlign = DirectionalityHorizontalAlign;
CurrentUser = null;
// do not prepend ~/ to this path since it is not at the root
Response.Redirect("adduser.aspx");
else {
ArrayList arr = new ArrayList();
CheckBoxRepeater.DataSource = arr;
CheckBoxRepeater.DataBind();
AddToRole.Text = (string)GetLocalResourceObject("RolesNotEnabled");
}
}
multiView1.ActiveViewIndex = 1;
%>">
<itemtemplate>
<asp:label runat="server" AssociatedControlID="CheckBox1" id="UserNa
meLink" forecolor='black' text='<%#DataBinder.Eval(Container.DataItem, "UserName
")%>'/>
</itemtemplate>
</asp:templatefield>
<asp:templatefield runat="server">
<itemtemplate>
<asp:linkButton runat="server" id="LinkButton1" text="<%$ Resources:
EditUser %>" commandname="EditUser" toolTip='<%# GetToolTip("EditUser",DataBinde
r.Eval(Container.DataItem, "UserName").ToString()) %>' commandargument='<%#DataB
inder.Eval(Container.DataItem, "UserName")%>' forecolor="black" oncommand="LinkB
uttonClick"/>
</itemtemplate>
</asp:templatefield>
<asp:templatefield runat="server">
<itemtemplate>
<asp:linkButton runat="server" id="linkButton2" text="<%$ Resources:
DeleteUser%>" commandname="DeleteUser" toolTip='<%# GetToolTip("DeleteUser",Data
Binder.Eval(Container.DataItem, "UserName").ToString()) %>' commandargument='<%#
DataBinder.Eval(Container.DataItem, "UserName")%>' forecolor="black" oncommand="
LinkButtonClick"/>
</itemtemplate>
</asp:templatefield>
<asp:templatefield runat="server">
<itemtemplate>
<asp:linkbutton runat="server" commandname="EditRoles" toolTip='<%#
GetToolTip("EditRoles",DataBinder.Eval(Container.DataItem, "UserName").ToString(
)) %>' forecolor='black' onclick="ButtonClick" text="<%$ Resources:EditRoles %>"
commandargument='<%# DataBinder.Eval(Container.DataItem, "UserName") %>'/>
</itemtemplate>
</asp:templatefield>
</columns>
</asp:gridview>
<asp:label runat="server" id="noUsers" class="bodyTextNoPadding" ena
bleViewState="false" visible="false" text="<%$ Resources:NoUsersCreated %>"/>
<asp:label runat="server" id="notFoundUsers" class="bodyTextNoPaddin
g" enableViewState="false" visible="false" text="<%$ Resources:NotFoundUsers %>"
/>
</td>
<td width="32%" height="100%">
<asp:placeholder runat="server" id="RolePlaceHolder">
<table borderwidth="1px" cellpadding="5" cellspacing="0" height=
"100%" width="100%">
<tr class="callOutStyle">
<td valign="center"><h1 class="callOutHeaderStyle"><asp:
literal runat="server" text="<%$ Resources:Roles %>"/></h1></td>
</tr>
<tr class="userDetailsWithFontSize" valign="top">
<td class="lrbBorders" height="100%" >
<asp:multiView runat="server" id="multiView1" active
viewindex="0">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.
0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Active" type="System.String">
<value>Active</value>
</data>
<data name="AddToRoles" type="System.String">
<value>Add user to Roles:</value>
</data>
<data name="AddToRoles2" type="System.String">
<value>Add <b>" {0} "</b> to roles:</value>
</data>
<data name="AreYouSure" type="System.String">
<value>Are you sure you want to delete the user "<b>{0}</b>"?<
;br><br>All information for this user will be deleted, including the us
er name, the user's membership in roles, and any profile property values associa
ted with this user.</value>
</data>
<data name="Back" type="System.String">
<value>Back</value>
</data>
<data name="DeleteUser" type="System.String">
<value>Delete user</value>
</data>
<data name="EditRoles" type="System.String">
<value>Edit roles</value>
</data>
<data name="EditUser" type="System.String">
<value>Edit user</value>
</data>
<data name="Email" type="System.String">
<value>E-mail</value>
</data>
<data name="For" type="System.String">
<value>for:</value>
</data>
<data name="Instructions" type="System.String">
<value>Click a row to select a user and then click <b>Edit user</b&
gt; to view or change the user's password or other properties. To assign roles
to the selected user, select the appropriate check boxes on the right.<br>
<br>To prevent a user from logging into your application but retain his or
her information in your database, set the status to inactive by clearing the ch
eck box.</value>
</data>
<data name="ManageUsers" type="System.String">
<value>Manage Users</value>
</data>
<data name="No" type="System.String">
<value>No</value>
</data>
@@B3Hh(
(
}
}}}*0X-*(
+ 6
{+
r-pr5psrU+p
s
rcps +rmpr ps
r p s +rprprps +rprps}(
*0s
s
+ko
o
&+-o
,%o
o
&o
++
o
&Xo
o2 -
o
&+(
o!
t*0(
+o"
{
,{
+i2
X{ -*
. YE4-+2,
{
o
3
Eh 8o
0
+@o
Xo
30+o
o
3
0
+-o
o
3 0
,v}+mo
o
/o
o#
,O}+Fo
o
/o
o#
,({to$
&{trpo%
&*0{
8
{
{E)F+i{,a{o
(&
o'
o(
&+B{,:{o
o(
&+%{to
,{o
o(
&
Xi?b*0'~()
o*
-~()
o*
*r-p(+
s,
rsp(+
s,
*(-
(.
s/
}s
}}*2{o0
*r(-*{{o1
*0o2
.%{X}*0Xx i1rprps3
z
+V(,R{o
{Y1{o
{ o4
X%{X}X
Y2*s5
z0Z
(-*{{{o
{ Yo6
{o
} 6
o7
*0R
s
( ,={{{o
{Yo6
o%
&{o
}+o
*repripo8
rsprwpo8
(*0M
o
& r p(9
s
o :
o%
&r2po%
&Xo#
o%
&o
*0P{{o
2;{o;
-*(s<
}{(=
o%
&}*0@r9ps>
s?
o@
rOps>
s?
o@
(*0'
*2oA
&oB
8;oC
3(8XYYo:
+~ (D
-X~ i2
+
>o
#@o
19o
x3.o+
(E
-+GoX
2+5o
1,o+
(F
-+o
X
2,
-
: o
(&XoC
@ *0Y
+
r>prHprPprZpr`prfprppr|pr p
rprp
r p
rprprprprprprprpr
r
prpr pr*pr4pr@prLprVprdprpprzp r p !r p"r p #rp$rp%rp&rp'rp(rp)rp
p r
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
p
r
r$
r,
r4
r<
rH
rZ
rf
rn
rx
r
r
r
r
r
r
r
r
r
r
r
r
rp rp r p r.p r8p rFp rTp r`p rlp rzp r p r p rp rp rp
p r
p r
p r(
p r2
p r<
p rF
p rP
p r^
p rh
p rt
p r
p r
p r
p r
p r
p r
p r
p r
p r
p r
p r
p r
p r
p
r
p
r~vnhbVPD:2$p rp rp r(p r4p rBp *(
}}}}(+*{*"}*{*"}*{*"}*{*6(G
}*{*n{+(
o!
t*(&*(&*(&*0^{,{o
+rNp(I
{ ,{o
+rzp(I
( ,{{oJ
*6(,{*&()*03(,sK
{ oL
sM
oN
,oO
*
'
0 wr=,poP
rA,p(9
r =,poP
rA,p(9
( G
(G
sQ
sQ
oR
o
(S
~U
oV
~T
*0}}}}}}}}}}}}}}s
}(W
sX
}{rpoY
{ rpoY
{ rpoY
{ rpoY
{rFpoY
{ rbpoY
{ r~poY
{ rpoY
{ rpoY
*0,{,{o
+rNp(I
{ (Z
rp{([
( +s\
o]
{s
o_
s^
o`
sa
zo0
ob
oc
+9od
tFoe
.!oe
.oe
.t+
of
-u@,oO
og
sh
rpr>p(i
o j
rfp(k
9 { (l
}{-{om
rvp(n
,
}8P{rvpoo
sp
sp
sq
r~p
rp(r
r
p(r
{rpos
ot
8 o u
ov
r@p(D
ov
ox
,#ow
o8
oy
ov
ow
ov
ox
,ow
ov
o8
oy
of
:k
,oO
oz
+({
{o|
(}
-O
oz
+({
{o|
(}
-O
,{r p rpo~
&,{r p rpo~
&
o
+ (
{o
&(
-O
{o
o
8 o
o
o
rp
,$rprpo
&r
prpo
&o
r.p(
,1o
o
rPp
,o
r`p(
o
o f
:i
,oO
9 {rrp(Lr p ,o
o
-Z~
{rp
,rp{r@p
,rPp{rrprp(
o~
&(-(.(/(K*(
}oj
r>p(k
o
r p oj
(i
{-{rpo
{ -{rvpoo
D
(1]z*dF]k h
}#&+$Oo
0 { o
o
+fo
o
rp(
,Lo
rp(
,o
tr
prpo
&o
{3o
o|
+of
-
,oO
*r
0u
{os
ot
+0ou
ov
r:p(
-ov
rp(
,
o f
-
,oO
9{r2po
rpo
o
o
r po
r?po
{o
o
+c
o
o
rp(
-G-o
u
rp(
-o
rp(
-
-o
,-
of
,oO
{-o
-rprpo
&
-rprpo
&*=Q
p,
0
{os
ot
+2ou
ov
rp(
-ov
r]p(
,
+
-
of
,oO
-*{o
o
8j
o
o
(
:R
o
o
o+ '
o
rp(
,
o
+
of
-
,oO
,~
+
(
o
6, o
+ o
X i2 +rprprp+m +
,
-
-
+X i2
rpo
-*
(
rp(r
(r
X i2rp o
&
of
:
,
oO
*AL?S
4
u}
0vrp(9
o
o
+;od
tZ
o
{oj
o
,(
oj
o(
&of
-
u@
,
*Gd0,oj
r>p(k
+rvp(9
{rp(9
r po
,o
+o
r(p(i
o
o
rbpr>p(i
o
8od
tF
oO
oe
;oe
;oe
@t
oj
%,vr p(k
-8r p(k
-*rp(k
-rp(k
-rp(k
,0
o
rpr>p(i
oj
}
(2+5
r6p
oj
r>p(
+oj
oj
o
(
of
:u@,oO
*A 0 rhp(9
{ rp(9
r po
}{-{+o
rpoj
rp(
rpo
,o
,rp(D
+o
r(p(i
rpo
,*o
,"rp(
o
s
(
o
rpo
o
,o
,rpr2po
r:po
,
o
,}{o
}{(0{rHprdpo(
rppo
{r p(
-rp+rp{rpo(
r po
{:oj
rp(k
,@{rrprpo(
&r p(Mr
p(r
r (N
p +Poj
rp(k
,>{rrpr po(
&r p(M
r7p(r
r p
(No
8
od
tF
oe
;
oe
;
oe
@
toj
rp(k
,|
%
r p(k
-:
r,p(k
-6
rLp(k
-2
rjp(k
-.
-,+4(4+c(B+Y(G+O(J+C(I+9o
r6p
oj
oj
(
+
oj
oj
o
(
of
:
u@,oO
(3*AUh0{:{r prpo(
&{rp(k
-*{rp(k
9{rp(k
9{::{9{o
> {rp(D
-;{,{r:prpo(
&8 {r:pr po(
&+~{r p(D
-{r:pr po(
&+S{r( p(D
-@{r:pr8 po(
&+({rp(k
,{r:prH po(
&oj
rp(k
,{rT po
&8oj
rp(k
,{r po
&8 oj
r p (k
,{rW!po
&+koj
rp(k
,{rpo
&+Foj
r p (k
,{r!po
&+!{r"poj
rU"p(
o
&{-{,j{o
{o
{,!rg"p{r "pr "po8
o(
&{,!r "p{r "pr "po8
o(
&*0P,oj
rp(k
+r"p(9
{ rp(9
{ r"p(9
o
o
rbprp(i
o
8od
tF
oe
;oe
; o e
3stoj
%,D
rG#p(k
-
rY#p(k
-
ro#p(k
-+(5+G(9+>(@+5o
r6poj
rp(
+oj
oj
o
(
of
:=u@,oO
*q;0 ,oj
rG#p(k
+r #p(9
{ rp(9
{ r"p(9
rg"po
}rg"po
r "po
}r "po
rpo
}r#po
}{(0o
8 o d
tF
oe
; o e
.}oe
3]toj
%,.
r#p(k
rp(k
-+(6+>(7+5o
r6poj
rG#p(
+oj
oj
o
(
of
:Vu@,oO
*k0(,oj
r#p(k
+r#p(9
{ rp(9
r $po
,o
+o
rpr#pr$p(
{rp(k
-{rp(k
,|oB
.o
Yo
r$po
r p {(k
,r$po
r$po
{o
rpo
,Ro
1Ho
Yo
~U
.~U
6(
rpo
rp(
o(
&rA$po
{ ,,o
1rA$po
r _$po
{,,o
1r_$po
r $po
,o
1r $po
{ -7rp{(k
,%{r$p(r
rp(
o(
&
( 0r p {(k
,s
,
rpr$po(
&{-er%po
(
,Or%%po
r?%p(D
-
r%prI%po(
&+ rS%p(D
-
r%pr_%po(
&{-#{r p(k
,
ri%pr %po(
&{r p(
-rp+rp
o{-#rp{(k
r%p
r %p(
(
r%p(
o
o
8 o d
otF
e
oe
.{
oe
.p
t
3Noj
%,r%p(k
,
(8+8o
r6poj
r#p(
+
oj
oj
o
(
of
:au@,oO
*l0@(:4,oj
rp(k
+r&p(9
{rp(9
r $po
}{,{o
+o
rprpr$p(
{ o
r,E
E&p}{%rO&p(k
-
rc&p(k
-
ry&p(k
-+r &pr&p
+%r&prc&p
+r5'pr 'p
rp}r 'po(
&r'po(
&r'pr'po(
&r p{o(
&*0@,oj
r%p(k
+r(p(9
r_(p(9
(0(
*0~,oj
rY#p(k
+r(p(9
{ rp(9
o
o
rbprY#p(i
{(,Z
-}(>+=s
}{{o
{o
{{o
o
o
8
od
tFoe
; o e
.woe
3Wt
oj
%,'rp(k
,-
{o
(:
+5
o
r6poj
rY#p(
+oj
oj
o
(
of
:\ u@,oO
*i0,oj
rp(k
+r(p(9
r+)p(9
rpo
,+o
1"rw)po
o
.*rpo
r $po
,o
+o
rpr$prp(
{ rp(k
-{rp(k
,0{rp(k
,r )p(D
-*r)p(D
-*{rp(k
,r)p(D
-*r)po
rfpo
,!
o
1
r)p(
, +&,o
(;
(1< +
(=
o
o
+(od
tZoj
o
(
o
&of
-u@,oO
(
* 5 0r$po
r/*p(
o
*0 P|oB
. Po
QrfpPo
P (?
,@(
rI*p(D
-rp(
+(
r[*p(D
-
r@p(
r-.+p
o
(
*0 rpo
,o
-+rpo
rm*p(D
-}r *po
,D(&
o
r*poP
r*
3 poP
3r1+poP
. r *po
r p(
o
*0!{r +p(9
{ r+p(9
{(G
(
s
8 r ',po
+ p
r3,po
-Qs
o
{
o
o
,
}
o
o
o
{o
} &X i2 o
{o
&*rO-p"
,.rY-p( (
{
o
&*{(
(
{(**0,oj
ro#p(k
+r-p(9
{ r-p(9
o
o
rbpro#p(i
o
8
od
tFoe
; o e
.woe
3Wt
oj
%,'r+.p(k
,-
{o
(A
+5
o
r6poj
ro#p(
+oj
oj
o
(
of
:\ u@,oO
*]0#,oj
r+.p(k
+r9.p(9
r+)p(9
ro.po
,o
+o
rpro.pr+.p(
r o.po
r+.p(
o
&o
o
+(od
teo
r .poj
r+.p(
of
-
u@
,
(
* 4 08$,oj
r p(k
+r.p(9
{ r-p(9
o
o
rbpr p(i
o
8
od
tF
oe
; o e
; o e
3qtoj
%,Ar.p(k
-r.p(k
-+#(C+Or/p(
oO
{o
&+5o
r6poj
r p(
+oj
oj
o
(
of
:? u@,oO
*[#0:,oj
r.p(k
+r//p(9
{ r-p(9
o
o
rbpr.p(i
o
8
od
tFoe
; o e
; o e
3q-
{o
t
oj
%,2rg/p(k
-rq/p(k
-
( D +?(F+5
+
o
r6poj
r.p(
+oj
oj
o
(
of
:? u@,oO
*]%0%,oj
rg/p(k
+r /p(9
r+)p(9
r/po
,o
+o
rpr/prg/p(
r /po
r/po
r/po
r/po
,o
-r/p
r/po
(
r/p(D
-(E:,o
(-
o
+(
o
r/p(
o
&o
o
+(od
tZ
oj
o
(
o
&of
-u@,oO
{rp(k
-{rp(k
,Or/p(D
-A
r
0pr50po
&+.rS0p((
{ o
&(
*5M0s&,o
-{(
(
+(
,
+{(
(
(Z
-*js
o
(
,j**JZD0',oj
rq/p(k
+ru0p(9
r+)p(9
r/po
,o
+o
rpr/prq/p(
r /po
r0po
r0po
r0po
r0po
,%r?%p(D
-r0p(
o
89 o
> r 0p(
o
r/p(
o
&{: {r0p{r p(k
-r?%p+rS%po(
&{r#1prS%po(
&{r[1pr?%po(
&}+0r1po
,o
Yo
rq/p(
o
o
o
+(od
tZ
oj
o
(
o
&of
-u@,oO
(
*50,oj
r,p(k
+r1p(9
{ r-p(9
o
o
rbpr,p(i
o
8
od
tFoe
; o e
.woe
3Wt
oj
%,'r1p(k
,-
{o
(H
+5
o
r6poj
r,p(
+oj
oj
o
(
of
:\ u@,oO
*]0#,oj
r1p(k
+r2p(9
r+)p(9
r=2po
,o
+o
rpr=2pr1p(
r =2po
r1p(
o
&o
o
+(od
teo
r .poj
r1p(
of
-
u@
,
(
* 4 0J,oj
rjp(k
+r #p(9
{ r"p(9
{(0(
*0 (,oj
rLp(k
+rC2p(9
R r p(M
o
(r
o
r 2po
-'o
r2po
-o
r2po
9R~
{r p(k
,r2p+?{rp(k
,r93p+%{r p (k
,r 3p+r3p(9
{ rrprp4pr4p(
o(
&o
r 2po
oO
,no
1 [{(G
(
(G
(
,d
(
-)(Z
, {o
r/p
(
o
&r p(N*0o){o
o
+ Go
o
r4p(k
,.o
(
,)o
r4po
,o
o|
+of
-
,oO
*Sd
0@*o
o
o
+o
o
(
,of
-
,oO
**
&2
0+{o
,o
*~
*00+{o
-{o
{o
o
*BSJB
v4.0.30319l#~8
##StringsD=5#US\r#GUIDlr #BlobW]
3g
NT&+
G 0
Xv ~ !Y
2
!f&
%
%
=a
@
{
v
u
M
Y
v+
v
3
=
=~/n" V P- "G
!k7B
R ! g#,=&
s|!
_&
n yQ&# [ t
O
K /&!&
#
d
J
f
7J
%
P
,
5
Y
P
D
V
V L V t
V
0Sc 0sSb
00S1o
0 S1 N 0S SyZ0S A0S m0S 0S @
0S 'S^0>00SS
0 y;0S/0SS&
0?0Sk0SSR0
S>00SDS0B!0
>0
Sy00SS0+0
Sd&!0
00S
S0S\
f!0
O00&
SS0S?0S0S0+
S0S00
S0S0" 0SSL"0
]-_"0
0SSSl
00!0
SSZ
S0 0SS0Q
S00SS^0D
00SSq0:
S!0
S!000SSX!0
1
00S S"`
000S S8"0
w
00SS0.
S0S E
X
!0
0S
0S 0S "0S
0S
"0S
0S q0S 0 S !0S !0S m!0S s0S 0S s0`< 1a 0 Q0000}
!0!0 000q0#WP
%
$-% :&L% &t% %0&3*h&s*&
3+*3>3 34e*
%6 %l< .%= |%> f %A %A &'pC /&( G ,)I &+LK K&,L u&-,Q &.xR 3/R &1`T ;2TV C4
&C^ V ;D` "c4a t;HLc &J d ;K e b&Me iNlg Pg qPTh
4SR~h4+~!_
}k
!
B FF
j& &! >i!)19AIQ9YY!9 9
*&uP9aYA"}
U3.9Y!lY"<
[ )aY YHYXg4"n
1 )a
9!!*):& Y 9
)Y3*Y9x!Y4 *Y8
Y8
YG
IG
qI*q Y8
' *Y"0Y)3I: ?I IjEl t * _"neIE 1jICY" I vt yI | *Y"VjE
P I I=
Y
Y)Y)QQvQQjYY8
Y
1QP"1QY*eg*- )?V
**Q Q
!
IP'9I'9
(
E
n
$
;
F
_
r
w
- J g$ ( , 048?<
@:
D_
H
L
P
T
X
\
`
d
lh
|xtprt_N% ?36ANUn
B ?
w
irectorySeparatorCharIsNumberOldVSProjectFileReaderStringReaderXmlReaderStreamRe
aderXmlTextReaderStringBuilderfolderReadLineIntoInternalBufferstartIndexIntoBuff
erResourceManagerProjectElementContainerToUpperStringComparerSolutionParserAddit
ionalOptionsParserProjectFileConverterToLowerconfigplatformSeparatorIEnumeratorG
etEnumeratorMatchEvaluator.ctor.cctorswitchStrSwitchIDsswitchIDsSystem.Diagnosti
csprojectTypeGuidsReplaceNonEscapingAmpersandsSystem.Runtime.InteropServicesstar
tupServicesSystem.Runtime.CompilerServiceswebReferencesreferencesSystem.Resource
ssharedResourcesAssemblyResourcesMicrosoft.Build.Conversion.Strings.resourcesDeb
uggingModesget_ChildNodesvalidCompilerSwitchescodeAnalysisRuleAssembliesResource
UtilitiesProjectXmlUtilitiesProjectErrorUtilitiesentitiesget_PropertieswebRefEna
blePropertiesuserPropertiesGetFilesfileswebRefEnableSqlTypesAddXMakePropertiesFr
omXMLAttributesget_Attributesget_HasAttributesVSProjectAttributesfileUpgradeFlag
sdisabledVBWarningsget_ConversionWarningsconversionWarningsget_SolutionParserWar
ningsXMakeProjectStringsProjectLoadSettingsprojectLoadSettingsotherProjectSettin
gssettingsLegacyFrameworkPathsFixCodeAnalysisPathsEqualsdebugSymbolsget_ItemsCon
tainsxmlnsSTM_DisableLangExtensionsget_ProjectExtensionsVBSpecificConversionsFSh
arpSpecificConversionsSystem.Text.RegularExpressionsSystem.CollectionsProcessAdd
itionalOptionsadditionalOptionsMicrosoft.Build.Exceptionsget_PropertyGroupsget_C
harsReplaceSpecialCharactersSDEVBTargetsSDECSTargetsvisualBasicTargetsvisualJSha
rpTargetscsharpTargetsset_DefaultTargetsdefaultTargetsVerifyThrowProjectNoChildE
lementsVSProjectElementsget_ImportsAddFinalPropertiesAndIm portsimportsExistswindowsCon
catObjectget_Projectset_ProjectGetRelativePathToReferencedProjectVerifyThrowInva
lidProjectConvertInMemoryToMSBuildProjectofficeProjectxmakeProjectget_Containing
ProjectisTriumphProjectisMyTypeAlreadySetInOriginalProjectvisualStudioProjectpro
jectFixTargetFrameworkSubsetIsHexDigitSplitget_DefaultProjectMetadataElementThro
wProjectInvalidChildElementProcessBuildElementbuildElementProcessServiceElements
erviceElementProcessReferenceElementreferenceElementProcessIncludeElementinclude
ElementProcessLanguageElementlanguageElementProcessFileElementfileElementProcess
ConfigElementconfigElementXmlElementxmlElementProjectItemElementProcessPlatformE
lementplatformElementProcessInteropRegistrationElementinteropRegistrationElement
ProjectItemGroupElementCreatePropertyGroupElementProjectPropertyGroupElementProc
essFolderElementfolderElementProcessStartupServicesElementstartupServicesElement
ProcessReferencesElementreferencesElementProcessUserPropertiesElementuserPropert
iesElementProcessFilesElementfilesElementProcessSettingsElementProcessOtherProje
ctSettingsElementotherProjectSettingsElementsettingsElementCreateProjectExtensio
nsElementProcessImportsElementimportsElementProcessVisualStudioProjectElementvis
ualStudioProjectElementProjectRootElementCreateImportElementProcessImportElement
ProjectImportElementimportElementProjectPropertyElementEnvironmentXmlDocumentVer
ifyThrowArgumentget_Parentget_CurrentFindPropertyIfPresentcontentpreBuildEventpo
stBuildEventerrorReportPromptDoConverterrorReportAddImporttriumphImportimportpre
servenewestXmlNodeListArrayListcopytooutputMoveNextSystem.TextxmlAttributeTextVe
rifyThrowRegextargetsFilenamePrefixconfigplatformPrefixconfigurationPrefiximport
PrefixconfigplatformSuffixconfigurationSuffixdeployTargetSuffiximportSuffixToArr
ayContainsKeyGetExecutingAssemblylibraryConvertInMemoryop_Equalityop_InequalityI
sNullOrEmptyIsFilePresentButEmptyemptyAddPropertySetProperty;/codepage:CodePage/x:Dis
ajbclpeaL:angJ
/
XCtPnAs/linkres:/linkresource:LinkResource/securescoping/ssSecureScoping/win32res:W
in32ResourceEMicrosoft.Build.Conversion.StringsSMicrosoft.Build.Conversion.Strin
gs.sharedOCannot write past end of user's buffer.!charactersToRead= *"[^"]*"= *'[^'
]*'<
<> > Caller passed in a string that doesn't have an '&' character i
bcagsitqrluacrlvieudtruaildecsbhotvsdi31maenehlt42rtuoieaTUOIEAcyshcHepY
p
m
f
A
C
E
I
N
O
U
Y
a
c
e
i
n
d
o
u
y
S
s
neurRiecmncNlpils2tfaztAuirlimeimldngef
ds
A
OO
a
oio
lnuaAoomeEpcfl13yaOeiEatEtgTcilhHuoitnc
c
s
E
sI
gU
e
i
u
y
e.iorm&rediaclmftirlpigao;lqdueop
go
qAanulropathsaahmyprB
eaegptoasGlatmgmtamDaeclrtdaeEgpsniblsopniexcZ
le taEtaThcetnatpound
IaomtbadKaMpupNauXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiOmegaalpha
L
betagammadeltaepsilon zet
sesahiiarlgmeqmlgnbruiesadpolrfaopsmlriur
t
d
D
h
p
l
r
w
gnienmuwoaelnxtlfPjtiatrzaokraiwumasmjuipdlepceirsaamiolarneglopfemnisnprydhmaioschmidpassiholml
z
ib
seaqgruarotrhseqtuau
osasyrbmrquuposlidhr
qpauirovrdquod
beadnrqsrupo h
eamrsrpcrarr
lArr
uepfthoAaliewrrdomateoslsr4tldcsrilaaul
f
t
o
l
r
s
h
mdrmbaeiAsnrc+gptreMixsisir
p
tdnadoreAgnomrOgtprlaitdocsnyPzeyfnrimaolpnbhjrnalAecnarcegrtiqaFlunidlvoelri+ecsgaiMiepnscnsuoibptnsigunNptneiwProjen
p
c
s
pcsrtuoFbdisluemAmps
ipunlbuiescatiosnuIpceonp1lAus semblyKey
ContainerNameAssemblyName3AssemblyOriginatorKeyFileRootNamespaceStartupObject3Confi
gurationOverrideFile#DocumentationFileOutputPath'ProjectFileNotFound)NoRootProjec
tElement'VisualStudioProjectProject4.0 $(MSBuildExtensionsPath)\Microsoft\Windows W
orkflow Foundation\v3.0\v3.5\)$(MSBuildToolsPath)\S$(MSBuildBinPath)\Microsoft.Win
FX.targets-TargetFrameworkVersion
v3.0.xamlGeneratorMSBuild:CompileSubTypeDesi
gner!ProjectReference.vcproj.vcxproj!ProjectTypeGuidsM{60dc8134-eba5-43b8-bcc9-bb
4bc16c2548}.csprojM{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}.vbprojM{F184B08F-C81C-45
Cl6i-eAn5t7-FT-a5rAgBeDt9F9r9a1mFe2w8oFr}k'PUrnorfeicloegyni$(zMeSdBEulielmdeEnxttBeunislido+TnsaPragteht)F\rFaSmheawropr\k1S.u0b\sMeitcrosoft.FSha
F
rp.Targets}$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets $(MSBuild
ExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.TargetsyExists('$(MSBuil
dToolsPath)\Microsoft.Build.Tasks.v4.0.dll'){!Exists('$(MSBuildToolsPath)\Microso
ft.Build.Tasks.v4.0.dll')ReferencemscorlibFSharp.Corec$(MSBuildToolsPath)\Microsoft.
VoiWsauranl4B2a3s5i3c4.2t3a5r4g4e2t3s5_5$,(MSE
N
BxupielcdtBeidnPvaatlhi)d\MPircorjoescotfPtr.oVpiesrutaylEBlaesmiecn.tGarogueptsto add properties to.
OExpected <VisualStudioProject> element.IExpected valid XMake project object.Proj
eScHtATRyPpVeI9SPUrAoLjJeScHtATRyPpVeiCsaunanloBtaBseiCcoEnCvSeHrAtRePdE)NViosAutatlrBiabsuitce?sMEuxlpteicptleedLanguageNodesNotAllowed1Un
C
recognizedChildElementIExpected valid XML language element.ProjectGuid!MissingAtt
rnyiyTbCyuPptUePCLloanctfafilogPrumro+adtu'ic$ot(nVPDelerabstuifgoo5nrSm'c)$h'(eCm=oa=nVfe'ir'gsuiroan{
M
A
t24i.Do06n2)8'B5=B=-2'F'BCx-846AA6-8C16-197242AEB884};{FAE04EC0
-301F-11D3-BF4B-00C04F79EFBC}VisualStudio <FlavorProperties GUID="{FAE04EC0-301F-11D3
-BF4B-00C04F79EFBC}">
< HostingProcess disable="1" />
</FlavorProperties> {68B1623D-7FB9-47D8-8664-7ECEA3297D4F};{F184B08F-C81C-45F6-A57F-
5ABD9991F28F} <FlavorProperties GUID="{F184B08F-C81C-45F6-A57F-5ABD9991F28F}">
<HostingProcess disable="1" />
</FlavorProperties>FilesStartupServicesUserProperties)OtherProjectSettings!FileUpgra
dienFElxaeg;sW2i0ndowsForvm2s.W0ithCustomSubMainConsoleExeLibraryWindowsEmpty{$(MSBuildToolsPa
W
th)\Microsoft.CompactFramework.CSharp.targets $(MSBuildToolsPath)\Microsoft.Compact
Framework.VisualBasic.targetsY$(MSBuildToolsPath)\Microsoft.CSharp.targetse$(MSB
uildToolsPath)\Microsoft.VisualJSharp.targets=$(MSBuildToolsPath)\Microsoft..targ
etsPreBuildEvent%%25PostBuildEvent3Expected <Build> element.eExpected valid global P
rojectPropertyElementGroup.SettingsReferencesImports9Expected <Settings> element.Ou
topnuftiTgy5pEex pected <Config> element.
C
Name#AdditionalOptionsSelectedDevice%Depl
oymentPlatform!IncrementalBuild .xml_42016,42017,42018,42019,42032,42353,42354,4
2r3o5m5pDteIbu'g$T(yCpoenDfeibguugrSaytmibonl)s|$(Platftorrume)' ==fu'l|l'fa'lIsneteropRegniosnterEartrioornR9eEpxopretcted <Platfor
p
m> element.
v1.0Pocket PCSmartphoneWindows CEI3C41C503-53EF-4c2a-8DD4-A8217CAD1
15EPocketPCI4DE813A2-67E0-4a00-945C-3188240A8243IE2BECB1F-8C8C-41ba-B736-9BE7D946A3
98WindowsCEPlatformID%PlatformFamilyNameDeployDirSuffix$(AssemblyName)OExpected <Inte
ropRegistration> element.QExpected configuration's property group.=Expected <Refe
rences> element.;Expected <Reference> element.KReceived null ProjectItemGroupEle
ment-Designer%System.Data.CommonSystem.SRMSCorLib
GuidM{00000000-0000-0000-0000-00
0000000000}COMReference.csdproj.vbdproj)System.Windows.FormsHintPathCMICROSOFT.NET\FR
AMEWORK\V1.0.3705CMICROSOFT.NET\FRAMEWORK\V1.1.4322aMICROSOFT VISUAL JSHARP .NET
\FRAMEWORK\V1.0.4205ASolution file already passed in!QNeed project Guid to find
solution file.*.sln
.sln*YBug: RelativePathTo can't handle wild cards.1Need va
lid project guid.ACouldNotFindCompleteSolutionFile?ProjectNotListingInSolutionFi
le
httpOUnsupportedProjectToProjectWebReference7Expected <Imports> element.
IEmpxopretc5tEexdpevcatleid <xImmapkoertp>roejleecmtenotb.jNeacmte.space+UnrecognizedAttribute3Expected <Files>
I
element.IncludeExclude+ExcludeFoundInProject7Expected <Include> element.
Foildeer1Expected <File> element.RelPath LinkBuildAction None.resxContent+CopyToOu
tputDirectoryPreserveNewest!EmptyResxRemoved5Expected <Folder> element.WebReferenc
esWebReferenceUrl;WebReference_EnableProperties7WebReference_EnableSQLTypesMWebRe
ference_EnableLegacyEventingModel\GExpected <StartupServices> element.Service7Exp
ected <Service> element.IDEExpected <UserProperties> element.%OfficeDocumentPath#
OfficeProjectTypeOfficeProjectIFAE04EC0-301F-11D3-BF4B-00C04F79EFBCIF184B08F-C81C-
45F6-A57F-5ABD9991F28FIE6FDF86B-F3D1-11D4-8576-0002A516ECE8 This project is not recog
nized as one of the following 3 languages: C#, VB, VJ#Q{BAA0C2D2-18E2-41B9-852F
-F413020CAA33};{}5CodeAnalysisRuleAssembliesFxCop\\rulesS # OG8;M
! % 1 % ! 1 A ) I %
-YUm % Y %
- - %
1 ! 1 a %
UM YM -M e %
UQ YQ -Q ] % a
E -}
i -
9
Q-QE% -!
l %% !% %% I!M%-%% %-MMQ3 )% - % 1 % 1 % 1 -M
) E )
M i )
M i )
QQiI-QQ-z\V
Q
4?_
:j
$ $ RvSA1
l LW.
;
6! r <
w wO)2 !d\L
CSHARPVisualBasicECSHARPEVisualBasic
BuildSettings
ConfigPlatform&InteropRegistrationReferencesReference
FilesImports
ImportIncludeExcludFei le
promptMSBuildVersion
xmlns($(MSBuildToolsPath)\.targetsMicrosoft.
CSharpVisualJSharp $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\OfficeTools\
Microsoft.VisualStudio.OfficeTools.targets0 '$(Configuration)' == '' Configuration
& '$(Platform)' == 'H '$(Configuration)|$(Platform)' == '|
Debug
AnyCPUx86DebugSymbolsCOMReference ProjectReferenceAutoGenVisualStudio:WebReference_En
ableProperties6WebReference_EnableSQLTypesLWebReference_EnableLegacyEventingMode
lfhttp://schemas.microsoft.com/developer/msbuild/2003HFAE04EC0-301F-11D3-BF4B-00
C04F79EFBCHF184B08F-C81C-45F6-A57F-5ABD9991F28FHE6FDF86B-F3D1-11D4-8576-0002A516
ECE8HBAA0C2D2-18E2-41B9-852F-F413020CAA33H4D628B5B-2FBC-4AA6-8C16-197242AEB884H6
8B1623D-7FB9-47D8-8664-7ECEA3297D4FH60dc8134-eba5-43b8-bcc9-bb4bc16c2548 Project
TypeGuidsPlatformID$PlatformFamilyNameDeployDirSuffix <FlavorProperties GUID="{FAE04E
C0-301F-11D3-BF4B-00C04F79EFBC}">
<HostingProcess disable="1" />
</FlavorProperties> <FlavorProperties GUID="{F184B08F-C81C-45F6-A57F-5ABD9991F28F}"
>
< HostingProcess disable="1" />
</FlavorProperties>RMicrosoft.CompactFramework.CSharp.targets\Microsoft.CompactF
ramework.VisualBasic.targets,TargetFrameworkVersion*TargetFrameworkSubset,Target
FrameworkProfile
Clienvt1 .v
02 .0
NoWarn^42016,42017,42018,42019,42032,42353,42354,4235.5x ml.csdproj.vbdproj.csproj.vbp
roj
MyTypeWeb:WindowsFormsWithCustomSubMainWindows4CodeAnalysisRuleAssembliesConsole
EmptyExeLibrary
WinExeOutputType FileUpgradeFlagsContent*CopyToOutputDirectoryPreserveNewest4.0b$(MS
BuildToolsPath)\Microsoft.VisualBasic.targets^$(MSBuildBinPath)\Microsoft.Visual
Basic.targets . System.Security.Permissions.SecurityPermissionAttribute, mscorlib, Vers
ion=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 TU System.Security.Permi
ssions.SecurityPermissionFlag, mscorlib, Version=4.0.0.0, Culture=neutral, Publi
cKeyToken=b77a5c561934e089Flags
)%-1
! AE5IE9E=9E=5MEI MEI MEI E Q%(((4/ Microsoft Corporation. All rights reserved.4.0.30319.1
(#Mi
ionMicrosoft .NET Framework*%f:\dd\tools\devdiv\FinalPublicKey.snk
4.0.0.0
e n-USTWrapNonExceptionThrows)$634AFA8F-4271-4e2c-9525-D0B75DAA821A u oMicrosoft.Build.Conve
on.Unittest, PublicKey=002400000480000094000000060200000024000052534131000400000
100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad
9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a
5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a124
36518206dc093344d5ad293 } wMicrosoft.Build.Conversion.Whidbey.Unittest, PublicKey=002
400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32
e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b7
23cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285
1.0.21-0
d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293
TOPerformance critical to inline this type of method across NGen image boun
daries'"Use parameterless overload instead(#Use parameterless overload instead.72Us
e parameterless ConvertInMemory() method instead
ProductVersion4.0.30319.14CommentsFlavor=Retail2
anslation
PrivateBuildDDBLD766DVarFileInfo$Tr
S7^ 0 Zm10* H
+0h
+ 7Z0X03
+ 70% <<<Obsolete>>>0!0
+@ V *j
1 0 `0 L
.
120825070000Z0y1
070822223102Z
P\ 0
0+0p1+0)UU"Copyright
US10U
(c) 1997 Microsoft Corp.10UMicrosoft Corporation1!0UMicr
Washington10URedmond10U
Microsoft
0
* Corporation1#0!
H
UMicrosoft Code Signing PCA0 " 0
#A$b
y}]E941%5Iw
E J /"J-|o
EqF
; 99)f;-
kLRb
2'Hl
MIl/$>e#
c \
H uE
P %+
8P ' N0== l9.4.
}b
0
+]h
0p
U)}s
Akf
O8|-=4
0
[ pir
94
b=7|j8m
#Q~
zB{
j#
M\c
r0p1+0)
#i
Z9` U
"Copyright
3;4|
.(c)
) Bk(q8
1997 Microsoft
Corp.10UMicrosoft Corporati
*RA^0
_
,(i0
p
Brv0 z 0 b
0ay1
>0
U*UHS10U
Washington10URedmond10U
Microsoft Corporation1#0!
110307224029Z0
091207224029Z
10
UUMS1
icrosoft
0U
Code Signing PCA0
Washington10URedmond10U
Microsoft
0
0UMOPR1
0*UMCorporation1
Hicrosoft
Corporation0 " 0
q
0 ErSk O#=Y@8s & S < B 8auM\F^i[s )DdY/ ]n9 eu
B5? E
}K[vr
SI0 |^zZ
w#} 5
7i2$
]PKGmU
TN
0B1U
0U%
0
+
0{DO
(Uo8BvCB$e4uq0
xs2 *_ HU
t 0U r7:p
0U#0 vp[N
Q q
QD.Dc0D
(ps{V4Z
U=0;0975
3http://crl.microsoft.com/pki/c
rN
190915070000Z0y1
aun
09`
060916010447Z
p1+0)+Z
U"*Copyright
HjT;1_,nM*
0 (c) 1997
UUS1Microsoft
0v{U *
Corp.1
0U
Microsoft
rT n* Corporation1!0
o bKk=UMicrosoft
/zw9gjRoot
{ cAuthor
I&B
Washington10URedmond10U
Microsoft
0
* Corporation1#0!
H
UMicrosoft Timestamping PCA0 " 0
7nBJqH>S,2OR >3I1 ( dP K u ipfx'f Y")/@VvmdmJT
0
0+ U
SuM
b1C|P
A0U *0a
UH0pE
0 sT?
*|
(a|H !8
2@S= f7 " wTQ:rD#0 0
0ay1
-0
U*0UHS10U
Washington10URedmond10U
Microsoft Corporation1#0!
130725191217Z0
080725190217Z
10
UUMS1
icrosoft
0U
Timestamping PCA0
Washington10URedmond10U
Microsoft
0
0UMOPR1'0%
* Corporation1
HUnCipher DSE ESN:7A82-688A-9F921%0#UMicrosoft Time-Stamp Service0 " 0
BQz 7(vMPv * GVi ~M quCloq+| ~a-0 &-v?F 7[h
0
0+U
0
f)Z
* H ~\$Yk v"A7H7 p3( t(u*
O ? 4 dNP;L %
:E1 0 0 0y10
+ 70
+ 710
+ 70#
+ 7
1* C
H 0v/| _
0r
1d0bH
H#8K
0g Fo
*MiHcr}B<2
osoft.Build.Conkv
versiqon^
.v4.OH3
0.dll http://microsoft.com0
mEnI M+_M
39dC,
j
Zx Ek~
$
xMFE,
k(&1W b <%u8-p1 0
* H
Z?}B &}'x5Rf
00 0y10
UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Timestamping PCA
0a~E
100318234317Z0#
- 5Qo
*10O+#HWS4X
]0
&#^~7mR
* /#
H ~Y`K*3.
0
w!1G F=)Ob Hk
i' F
b`N EmC1 IF miVy\ r1VN ,4 m ;b &#F p#>-iTr?&
71'Ju
H.text `.rsrcst@@.reloc
`*@B HL(V
-*-**oo(
,4o(
,*o(
,*ooo
* *(
*.s *"(
*6(
(
*0gs
}
(
}
{
-(
}
~
1s
}
}
*1s
}
}
*}
*^s
}
(
s
z0Fo
(
o
+o
(
(
(
o
-
,o
td 0[-,
*';
{
*0 {
EpR+u{
o
*{
o
#
+{
o
(
#X{
o
2* #|
(
#* #*(*0 {
EpR+u{
o
*{
o
j
+{
o
(
jX{
o
2* j|
(
j* j*(*0B{
E +{
o
*{
o
***(*
*
*{
*
*s
zs
z{
*0 {
EZ0+S{
o
*(
(
,:(
(
*{
|
(
o
,|
(
*(rps
z0 {
EQ!+d{
o
*(
&(
*{
|
(
o
,s
}
*(
*s
}
}
*(*s
zs
z0 #rgp(0{
E S *{
o
*(
,rops
z(
{
3 {
s
o
*{
o
*{
|
(
o
,rops
z(
{
s
o
*s
}
}
*0
(
*0m{
EG+G{
o
*(
*{
|
(
o
,|
g}
***(*0 {
Ei8+b{
o
*(
(
,H(
(
j*{
|
(
o
,|
(
j*(j*s
z }
}
|
g}
*s
zs
zs
z0_{
E0$+9{
o
l*{
o
o*{
s
*(
o
*(*(
*s
zs
zs
z0>{
E+{
o
*(
s
*(*s
z0{Y
o
+&(
{
(
o
,
#(
-o
s
k
**
3?0H
+4{
{
o
(
o
,{
o
*X
{
o
2*0
{
rp({
@ {
o
~
2t{
o
Z{
s
}
{
o
+!(
{
(
(
o
(
-o
}
}
*s
}
{
{
o
|
g}
*^. nr%p(
(
(
*:(
}
*j{
,{
*r[ps
z2o
g**N{
}
**"}
*:(
}
*06{
o
(
#{
o
(
js
*0
{
o
(
#*0
{
o
(
j*2(
*2{
o
*2{
o
*"}
*"{
*s
*>}
}
*{
*{
*(
*^~
s
~
*
*
*
*
*Fr p ( *Fr p (*
s**Jr
p (*0
}
*(
**2rp(U*0s
}"(
r $p(0}$}#s
}&s
}'s
}s
}s
} s
}*}+s},{,os
}-~s
}/}s
}0uY|*s{$
o
}1*{s%
*}2{}2*0r~{-"
r$
% psU ~ *N{,
(
r$p(or$p(
rp(
,(D}(,o}%+s }%{%o -{,{o,(]{%(ioSu3}oSu}oSuE}oSuF}{soW{;soW{ soW{fsoW{
soW{%o { %o (
u{,o
{{su
oWo
&( {,( { z}#{'o
&{o
&
,
(
*A4
N s
(
&*0Xr)%p(nr$p(noSuE}{ooSuF}{o
(i*0poSuE}{so
o(4
2o,&o*,o (r sds
({o*0 {"%
rS%p(0r)%p(nrk%p(n(p(m{%o s
{&oo
{'o
&
,
(
*tv
0(_
{o"
%*(0H
r)%p(nrk%p(n(p{&o
s
o
+(
(z(
-}
}#
oQ
,(
{'o
&(l{o
&{&o
r %p({o
r%p(,
{(oX( {%o ,
{2o(q}#{,{zr$p(
rp(
,(H*(Jf{} `X0=([(`
oV-{,{oW}(a*-40{"%(
{!,ou
.ou5
.'.+Z..
.;+M(+
(t+](+(u+J(+
(v
+7
(&p+ ou ((w+#r
,(
*
:{,o*6{,o*0
s5
}
}
}
{
r m&p(0
{
o r &p(
{
o oi
,A{.,{%ooUr&p("+8{%oUo}.+{%o-{%s>o(ps6
}
{
o oj(
9
{
o oir'p({*
{
o oio
-@r 'p%{+%X}+ (
{ *
{
o oio
{
o
{
o oirpokoi(
ok
{
o {%o s
{
o
( 29{"%
(
{
o!oXr'p({&o
o
(
+6
(
o ,oo o!+r'p(
-
,
(
{
o om_(s
{
{
o o!
{
o ol
{
o op(
s o{!,B
{
o ssL
{
o
{
o
{
( zU
{
o s} 7 s
(
&
{
(j*AL Cc s
{(1,
o
{X i2*05u
o
rpou (*. (
*0ju0
-,&
.o
=s
o
Q,ooo>sL
o
o}((z*0"
{"%(
{!,sz,.{%o , !{2o3
{2oo(t,(
-u0
<o s
ux
+oQ (F,,
,2
o
o=
o>
{2o
-1os
{o%
Qo
ooj+os]
*o0%o{)
o%sL
(y}(*Y]km } !{X})*Z{#3
(*B{#(*03{#.)r(p
({#
*0{oX{oX{oX{oX{
oX{o^}}!}{&o
{o^}}.{*o
{ o
}+{,4{o
+ o
o /o
o
-
,o
rM(p(
rp(
,{%ooD*
08{,{oW%{%
X&}{oX* %{X%}*0%(1,@{o#oY{o--(ro>
{ o+j,'o&,o&o'{o!o+@o&,8o&,0o&o&(
-{o!oo&o'*0 o ,io+T
{ ooo#( , )o(g
sL
{ o
o !o!s
-*:XI0i2
(x
0k({soZ
{ (
o
-s
{ (
o
o !(
o
&{o\*0X {oRo
o^,(o+-
o^o,o)-
o\o*{o[(x*0 ! }!{(
o
r (p ({(
o
&o
oS
uY9 o@
{&o
o
+E
(
os
~
sr)p
-~
o(
o3g{&o
o
-UuoY
oS
,M (
~
sr)p
oo
oo(|{{%o o]{&o
o
+8(
o,&{oo%-&ssLo
-
(
{o]{&o
s
o
+{
(
o,i{ooo
-ossLoo{(,ooY+}((z
(
:y
}
{o
-
{o
&*(qRiE n0"o
8o
E{-99U98p{%o ,{{/oQo_{/(y8_{{.{1o\8Cs
+d{({{2o,E
[ {o
&{
o(
o
&
o
{ o
r3)p(
X
,{0o(
o
-6{,ouE{{.{0ooo\{{.{0o\+#r)p
:%
{ -
(o
,o
*A
0 # {"%
(
{&oQo
,c{&oQo
o oVu/,o{(, {&oQo
ooY+}((z
,
(
*
0Y$
{"%(
o-o-{&oo
&{&o
-
{'o
&
,(
*LN
0Ku%Y{-<
oS
os
{%o
(
o
s}{*0&
({
"%
{: }{&o
s
o
+`(
o
o,V
P-o-
o -,osLo+o{oW(z(
- }
,
(
*<m
0 ' {!:
({
"%
{-o
o
o!
,Ro
o
o"
,?{-o
o
o#
&{&o
o
o$
,o(z
,
(
}*
{-o
o
o%
-{-o
o
o&
*0({%o
3{%o -+(
toU{}1 o
{ / o{0o,1o'
+ o(
o&o
-
,o
oo)
-
so&,?o*
+ o+
oC
oDo&o
-
,o
(
&, *
(l
+
a,/
{1o{0o{/ouoV*0)
({
"%
{!, {#.{}({&o
o
+4(
o,$ossL{o
-
o(
(l
,
(
*BA
J(js>(*0uo
s,
o
(r)p(0o
}Co
}Go
}Ho
};o
s,
}@o
s}J*{9*"}9*{L*"}L*{:*"}:*{;*"};*{<*"}<*{M*"}M*{=*"}=*{>~R-s-
R~Rs.
*{?*0?*,4o*
+ o+
r *pr*p(1o
-
,o
}?*
#-
{@~S-s-
S~Ss.
*0[+o/
s0
}@o1
+,o2
{@(3
(3
(4
sco5
o
-
,o
*8P
{A*"}A*{N*"}N*{B*0?,,4o'
+o(
r*pr*p(1o
-
,o
}B*
#-
{C*Zr*p("}C*{D*"}D*{E*"}E*{G*"}G*{H*"}H*2{Jo*{I*"}I*{K*"}K*Brsp (*Brp 0u(*2rp(*6rp
((
*2r
BrWp(0u
*~(7
*Br
{8*p"
}
8*{>*Nr+p(}>*{@*:(( [*{F*"}F*6({J*{O*"}O*{P*"}P*{Q*"}Q*N({Jo*s*0|8oD
o+|LoA*s*00-(
(
,*(7
(8
(E,
0}9(9
*
o:
}:r"*p};}=s;
}>s;
}@}C}H(9
o<
}I}K(
}>(( r **p(
rp(
,}=rZ*p(
rp(
,}<(*0r}9(9
o:
}:r"*p};}=s;
}>s;
}@}C}H(9
o<
}I}K(
o * 0}9(9
o:
}:r"*p};}=s;
}>s;
}@}C}H(9
o<
}I}K(
r *p({8}8{:}:{;};{=}={>-+{>s,
}>{?-+{?s=
}?{@-+{@s,
}@{A}A{B-+{Bs>
}B{C}C{D}D{E}E{F}F{G}G{9}9{J}J{H}H{J}J{I}I{<}<o(o ( o ( { K}K{L}L*{J,*( { >{@(s}J*0.{E,
,*rV+p(
,(?
,}E*(
o@
rx+p(
,(?
,}E*(
oA
+F
-6oC
(D
oB
&%rx+p(
(?
,rx+p(
}E6
Xi2(
,#rx+p(
(?
,rx+p(
}E*w ow
*ow
*.( 7*0T(
r +p(0rS%p(0(((sE
}\}]}^}`*{a*{b*{c*{\*N(jsF
( * {_*"}_*{d*{e*"}e*0N/{`({`,% ,
((oP(q&+
ssoI
s{
ioI
{irssoI
{i ssoI
{issoI
*0'1{ioJ
{iosoI
*{ioJ
or,p ({isoI
*V{isoI
*0:2
{ioK
-rn-p ({jo*{p*{q*0U3(-2{o-#{n(o}o{ooU{o*{n(o
oU*r(
(}n(*V(
} o(*"}p*"}q*0(
r-p(0r-p(0,{y+r-p(}y}|}}}{sL
} s M
} s N
} { s o O
{ s oO
{ s oO
{ s oO
{ s oO
{ s oO
(*{z*{|*{}*{{*0!4
( {~*2{ o P
*2{ oQ
*2{ oR
*{ *{ * { ~ S
(T
r\.p(} *{ * { ~ S
(T
r .p(} *{ * { ~ S
(T
r.p(} *J{ oU
o * (r/p(0}~(*Z(}~(*05 ( r"/p(0r/p(0os!
{ o V
rB/p({ o W
r /p(
o}~({ o X
{ o Y
&(*036 (r+p(0s"
( }~*07{{.{{+r0p( ({z.{yoF+r 0p{|o ({yoCr0p{|o ({y{|ooL
.+r 1p{|o (}{(*0 8
({z3oX+r[2p({ oP
r23p({ s Z
o[
+(\
o(]
-
(*]y({ oP
r3p({ o R
r3p((*{zr4p{|o { z (*0@9
+
{ z3*X
i2r 4p{z
(*0T:(^
{ { zoU
o{ oU
o{z.{z}z{yo:*>((*0;{yooo?
-*s_
o`
+~oa
oo(oo
(3-{yooo?
,5oo
+o
o
-
o`
,o
ob
=v*
05<sc
+ood
oo-oe
(*0<=sc
o d
oooo3(o-*0 >{ o P
,N{ oQ
sZ
o[
+(\
os!
((]
-
{ o W
rQ5p({ og
&{ oh
&o-o{ oP
-(*04@,)u
, { { 3{ { **("
*:{ { a *~(
o} o} * ~(
o S} oU} * :o&(i
*0ZAs'
r5poj
,oi
(
-2((}(
} { { ( } * 0Bs'
{ 3
(} *08C,4{
Y E*{ { ((*(*:(
} * Jr5pr6p(k
*0 sl
} sl
} sl
} sl
} s m
} sn
} so
} sl
} so
} sp
} sq
} sq
} so
} sr
} @ ss
} (
*{ *2{ ot
*2{ ou
*2{ ot
*2{ ou
*2{ ot
*2{ ou
*2{ ot
*2{ ou
*{ *2{ ov
*0Ds?
}
*2{ o w
*{ *"} *0Es
( 7o
{ o x
{ o y
{ o ooz
-sM
{ o oo{
oY
&{ o|
-{ sc
o}
,8{ o|
r
6poo ({ o ~
od
*0FE R!=8 { o oo
&8{{ ooo
&8_ry6p ( 8J{ ooo
&{ oo
8{ ooo
&{ oo
oh
&8{ o
{ o
&{ o
o;{ o oz
-sM
{ o o{
oW
r7poo o (oY
&{ oo
-s
{ o
o oo
-ooo
&oEDD 8 { o oo
rj7p({ o oo
8 { ooo
r7p({ o oo
8G{ ooo
r&8poo ({ o oo
oR
r 8poo ({ ooo
o h
&{ oo
,{ oo
oh
8&(7
{ oooo
r8p({ o o
,{ oo
+rV9po ({ o oo
{ o o
{ o ooo
: (7o8{ ooo
r9p({ o oo
{ o oz
-sM
{ o
o{
oW
r:poo o ( o Y
&+(r :p o o ({ (7osPo
*6{ o
*0G{ oz
-*oR
*V(O{ o
*V(O{ o
*0?{ o
,**V(O{ o
*V(O{ o
*0!?(N
r;p (*0?{ o
-**0_H{ o
-*,?,<o
+(
oo,X(
-
o
Y*!'H6{ o
*boo(N*0G{ o z
-*oR
*0G{ oz
-(
**0G{ o z
-(
**0[I-Ks
{ o
o
+(
o-od
(
-
*{ o~
*$>Voo(L*0{ o
-**0oo(L
. **0J?{ o
,*{ o
,*{ o
,*{ o
,**0$?(N
-r;p ( *o* (
} } }}*{ *{*{*{*0i(
r<p(
rp(
}r<p(
rp(
}r<p(
}{(
,(
}(h*b{-*{oX*B{o<*^{-*{o*0#J{(^
o8s
o./o3{oo@+{oo=o.Jr=p o o
{oSo=oo,XoTooor>p(ooo(
o ( o
-oo(
o
+!(o
oY.
oQ( {o3sZ
o[
8
(\
o ooS@r
?p
o o
oo
( o sOo,oo+o( ,o( +o( o
o
(]
:!
(n*0vL{(^
o8o
+:o
{oo
r{?p
-
,o
o
( o
s
(n*F]
0cM{(^
o8r ?p ( { oHo
+o
(o
-
,o
*>X
( ( s)}s
}}*0N {oQ
s
r ?p o{oJo
+5
o
o
o
( *=A~
oo}
*o{*0oS
O(t^
F}{oStE}*(h*jr'@p (s`*ro{ o4-f{o.-Y{o0-L{o,-{o2-rq@p ( *r @p -( *
( s
{ o
o
+!(
{oC&(
-
o
o
1 {o41 (o-*
{o40o
-{o3( {o
> '{o,=){o2={o4-0{o.-#{o0-rq@p ( 8{o0,3( r@{p o0 (
8 {o.,0( rAp
{o4
(+o
rjCp(rCp {o4 {o0 {o. {o
o
( ( * .0{oOo 3
(z*(ro
-*{-8{{s}{oJ(+oo( {o,%{oOo 3 (p*(q*(u*0Po
8 (
s
{o5o
+$o
{ o
(}
o,oo
o
-
,o
ou
12{o
o
rDp( o
( {(
:\
*-1^
0Po
8 (
s
{o5o
+$o
(}
o,oo
o
-
,o
ou
12{o
o
rDp( o
( {(
:\
*-1^
0kQo
,a{o5sZ
o[
+.(\
(},(s,({o
&+
(]
-
*!;\r{oooo*0 R o
,x{o5o
+Qo
(},@{oooo#(
rIEp(
,({o
&+o
-
,o
(u*]w
0S{o
s
s
o
o
8(
o
9(|,Xr]Ep {o, {o2 {oOo ( + \{o5o
+%o
(}
(,{
o
&+
-
o
,o
(
:0
(z*2
*0T8
!
{o5o
+ho
{
o
,9{
o
/o
oooL.
oooo#s
o
-
,o
,<.+(+({o
&o
1{o4= *%u
0T8
j
{o5o
+ho
{
o
,9{
o
1o
oooL.
oooo#s
o
-
,o
,<.+(+({o
&o
1{o4='*u
0Uo
8(
{o5o
8
o
o{ooL.3X({ o
o ,9(
1
-
-
,
3
+
o
:l
,
,
+
,
({(
:
*0
0 Vo
+f(
{o5o
+%o
(}
,o
,oo1
-
,o
,
-
({(
*%2W
sz0Wo
8(
(|,Sr]Ep{ o, {o2 {oOo
+o
(},({+ o
-
( d{o5o
,o
(
:I
* *
0r-p(0r"Fp(0r6Fp(oo{oK(o
rlFp
oo o,ooo+ ( o*0o
{oOo Y E+
+({oOo X
+{oOo X
{o,{o2X*03X{oM,"o(
{o
o**0EY{o
o
+(
o,(
-
**"30Z
o
+"
(
{-{2
3 3X+
(
-
,#{o
oXX{oOo 2 *
8
o
o( {o
X X{(
+&
~o-O
_o,3/X+
--
,J{o
X XX{oOo 2&+0.3{oOo /X o
:=
,
,,rFp
l
( ( o
18r@Gp l( (o
0**
/;|F
0LR{ossLo
+o
( o
-
,o
oo
*'A
0P[rGp(0rGp(0{ooB
ooo*0\rGp(0r"Fp(0
o is
o
8
ro
G
(3p ,o+
o
o
o
(
( , [ryHpo
o
({/ ( o
{/oX,
+
o
X
i?
:o
: 9 ooo(o
*o
{o9,oo( (~-.rHp
l
( ( o
o
0 *0 ]{oIo
+Xo
r?Ip
o
-
,o
oo
( o o(oo
*dv
0^o-+oo
o( 9 o{1oq( { 1oqor Ip
{o3sZ
o [
+(\
( (]
-
* 0%`o-+oo
o ( :rJp
oo ooo
( o{ooM
rK
po(oo {
1o{q
(oo*0oLGa{(o{ooK(+PrLp
{
3o){o+(o**0@o,(*rzLp(oTor>p((*0Ab{oo
{ooL{oQs7
o;*0Nc
{oOo 1 7oo
+o
X
( X
o
-
,o
*!!B
0sd{,*{oo
o,*o#
os
(
o
o
+"o
(
o
-
+o
X
2-ooo4o
:U
,o
{o%{X}*=
0
f{o
i i
~S
~S
#{o
.{o
-
s
-+
+6
s
rLpX (
o
&X i2rLp
o
o{o*o
8 o
-
oRoo+
oRoo
oQ
9
(
oQ
(
~S
(
,X+L
.>+, .%q.
oQ
(
(
.Xo
2X i2o
XoQ
oRoY
o YER+P
oT
-
o
& -q-~S
(T
,g -
oQ -+P
o o.A
oR
,
o
3& o
-
(+ o
:L
,o
( # s
+[
-q-(
.(
l(
l[rLp#Y@Z o
&XX i2 rMp o
{o
l[#Y@Z o*A
0g~S
(T
,*
@s
rDMp(
o
&
+M3rTMpo
&+43rfMpo
&
+rLp (
o
&
X
~Si2#
(
,(
(
%O
XW#
,8rxMp
hZYY(
Z s
,1
?[is
O o*0
Y,
+rMpo
&Y
0,
rMpo
&rMp o
-oo+
(
o
o
o
o
*0vj{9j{9_(
{ r6Np(
(
o
(
s
(r
dN
p{o7
o
rNp{o7(
o
{o
o
81(
r
Op {oC-r|Op+%r Op{oEoo (
{oG {oD o
{ oHsZ
o[
+(\
(]
-
( o
{oC:CrOpo
o
-rPpo
o
8s
sM
o[
+ L(\
o19oo
+o
o
o
-
,o
(]
-d
o
o19
o
o
+o
o
-,o
o
oY
&o
0o
+(
( o
(
-
(
:
rP
{poo
4-
+IrPpo
{o3o
+o
( o
-
,o
o
,o
*A^$ "
Y9h
&D7 W
Tk
0yk{9m{9b(
{ r6Np(
(
o
(
s
rQpo
rOQpo
{o6s
o
o
8(
r Qp {oL
{o
o${oo#o
{ oo%o
+o
rQp
oh
oio
o
-
,o
o
(
:8
o
,o
*AL
,8
XTn
0 l {, ! {,w(
{r6Np(
(
o
(
s
rQpo
r=Rpo
r}Rpo
( o
,o
*K2}
0ER{oJo
+o
( X ( o
-
,o
*(:
0 m ( o19oo
+o
Xr
Sp( o
-
,o
o19oo
+
XrSp(
-
o
o
,
*#B
a#
0rSp
Zs
,+r)poo {oooL {oF-r)p+rbSpo oo {oooo#r#pooo
(
o
*0
0n{{s
{oQs
o*0
:{{s}{{oQs
o*(
{{oD{{oDo
*o
o
(
,*o
o
(
,**V(
}}*{*{*v(
~ S
}~
}* {~S
(T
rtSp({* {~S
(T
rSp(}*{~S
(
,(%{{(
(
}~S
}*s
}s
}s
}(
}}(*{*{*0oraTp(
(
,*(
-*((
,*(
s
s
(
s
o
o
+?(
r Tp o
{oo#(
o
(
-
o
o
(
,o
$&rTp (o*(gL<
/$0praTp(
(
,*(
-*((
,*(?
-*(
s
(
(
,o
{o
1(i&rT
p
(oH&rTp (o$&rTp (o*4EU
8=u!8= $ 8=$0q{o
-*o* ~ -s
~(* ~ -s
~(*0q{o
-*o*0 r{o
-*{o
o
+L(
o
+ !(
o
1
o
3
o
&(
-
(
-
*4.b"Y{0Iq{o
-*o#h >rUp(oeo#o*"}*"}*-*{oooo#r Up(
*0hs
o
+ Ao
{{oo#o
-+-,
o
/
o
-
,o
*
NZ
(r<p(
(
-(((((*0t{o
s
s
o
o
8(
{o
rUp o
o
o
(
oo
+#o
rUp
o
o(
o
-
,o
(!
(
:K
(!
* 0
+0 urUp("
{o
s
s
o
o
+?(
rOVp {o
o {o
o(#
(
-
(!
*4L 0 u riVp("
{ o
s
s
o
o
+?(
rOVp {o$
o%
{o
o(#
(
-
(!
*4L 0vs&
{o
(*0{w{oo'
-s(
{oo)
s*
o+
o,
oo
+
o
(
-
o
,
o
&*Ni
0LxrVp("
{ o-
s.
~-s
~o/
o0
8(1
rOVpo o o(#
{oo$
~-s2
~o3
o
+ Y(
rVp(4
o5
+(6
rVpo (7
(8
-
(!
(
-
(!
(9
:
{o
+( (
{o
oX i2o>
9s*0 z 8 o:
o ;
-* o <
i/r=Wps=
z (
(?
s{o@
{ oA
((
(o>
9l*0E{{oJo
+o
oo3o
-
,o
**%7
0 m oooB
{oJo
+"o
rVpoo oC
o
-
,o
o
{oJo
+
(
-
o
o
,
*#.Q
s
0 n|oooD
&ooo
(
XoE
{oJo
+
(
-
o
o
,
*H
^(
ooo
*^(F
oooG
*(F
{o
o{o
ooG
e*(
{o
o{o
oo
e*(
{o$
o%
{o$
o%
o
e*b(F
oooG
e*^(
o
o
o
*{*{*{*"}*{*:((X*2{oH
*{*2{oH
*{*0V{oI
-G{oJ
&{oI
-{oJ
&%{oX}o(*0E}{oK
+ (L
%{X}o(M
-
*
*6sN
}sN
}(
}}}*0@(
ryWp(0o%s,
(o#(q(o$(*0 +(
r Wp(0oSo/
s0
(oSo1
+,o2
((3
(3
(4
sco5
o
-
,o
o`(ob(q(*38k
{ *{*{* (
(oO
(
(oO
a*(
,*(P
oP
(Q
,*t$(*N(
,*(*"}*"}*"}*0G(
,*(o
,&(o
,(ooR
**0 oS
r+p(*0 o T
rep(*0 o U
r p (*0~s
o *0/ o
o(o s
s V
oW
oX
(Y
o e
o[
8 o
toO
o8
o\
,]
o]
rXpoZ
rXpoZ
rpoE
r#YpoC
o]
r=Ypo:
(^
o]
o8
o_
o`
o
:po,u
o`
,
rWpo
(6o)
0s
(
&*Y A
,
(6
oX
,,
,,
op
ob
+ (c
rkYpok ruYp(a
r Yp(6ok
r Yp(6ok
ruYp(a
*0S (
o8
(
,
o8
+
(d
-
*-C0 se
}se
}
rWpsf
rWpsf
rWprpsf
rWpsf
rGXpsf
r_Xpsf
rwXpsf
r Xpsf
rXpsf
}(
}%-&(
sg
}}}}*FrYp(
(6*0
-RrYp
+R*0D r Yp(
r Yp(rZp(
(7
reZrp}Z
p((
r Zp(7
rZp
(
rpo rZprprZp(h
o r [p o r A[po r u[poV
o r [pr[po r [po r \po r a\p(7
r \p
(
o r \prprZp(h
o r \prprp(h
o r ]prprp(h
o r =]prU]po r ]prpo r]prpo r ]prpo r+^prpo r u[poV
o r M^po r Zpo r Zprprp(h
o r k^p(7
r ^p (
o * 0 rpr}Zp(rp(h
r_po r!_pr1_p(
o r !_prO_p(
o r i_p(7
r _p (
o
r_p(7
r_p (
or` pr'`p(
o r K`po r c`po ru`p(7
r `p (
o
r`po * 0 rpo
r`p(6o , o;
1
r`po ( 7
r`p
(6(6(
rpo ,rpr6cpo *0 rpoX
r`p(6ok
,o;
1
r`pok
r`p
(7
(6(6(
rpok
oE
o;
Yoi
,rpr6cpok
rdcprvcp(k
*0V sj
o;
1ok
(.+ om
(/X on
2o
*0v
(
_ol
_ol
*0, o E
,
(6
o
rkYpo ruYp(a
,,
r Yp(6o r uYp(a
,,
r Yp(6o
rzcp
o6
(6o7
(6(
*0M
rWpoo
&rWpoo
&(
,o{
(
,o|
s5
*04(7
o8
*0 rcp(s
o G
o[
8
ton
,
o
r5po
&o}
rTdpoi
sr dp oE
([
(
o
&,o;
1rdpo
&o
&
o
:f u,o
o
*#0P {ob
rTdp{oi
srdp (
{((*0K ( {od
,(
(({oe
op
sq
{oe
o[
+o
t
.
o
-
o,u
o=
or
os
Xst
(
r eprWpokoirWpokoi(u
}ov
{
(r0ep(
,@ow
+
(x
o o 2o
(y
-
oz
*R*|
)50 o{
8 ( |
oO
o\
&(,m(
(
rXep(rpeov
pr|eprXep(r e-
(
p(
(
(}
:e
*
0A(r ep(
rpep(
r|epr ep(
r ep(
*0@ (
o
repo repo {oi
rYp(
o
s~
&((({op
ob
+(c
((d
-
r]fpo
rfporhprohpo{oi
(
(6{ok
(6riprip(h
(
o
riprip(h
o r iprip(h
(
o
ri
prip(h
o o
o
orepo &r|epo &rpepo &r epo &rip(
,+o
{oi
rjp(
o
o
{-+s
s'
repo
r|epo
rpepo
r epo
(
*k 0 , Sr5jpoC
(6op
rp(o&rWjpr jpo&r jp(o&+Mr5jp(op
rprYpo&rWjprepo&r jprjpo~o&,&rWpo6
o&rWpo7
o&*0 r 'kpom
*r6cp*0 ( o~
*0 rOkpo6
o7
(u
*0' r5p (r kp(
*0
o=
.oX
9
o G
o[
+io
t
{og
o
u
(
+
- u,o
+ (c
o8
{(
,'(d
-
*o:
-***-J0 ( (4(s(
( o=
39(rpep(r|ep(r ep(8o=
.
oX
,io?
(
(7
r mp (
r pep( (r|ep
rpep(
r|ep(
r ep(
*0K o=
3{ok
oY
((
(r ep(+8(
+oC
(
,o?
(l
(*0 o G
o[
8 o
t
{og
o
u-6rTdpo2sr dp oE
(+1oO
{o
(
(
,
(o
:fu,o
*
0
Y % -&rep~
~
~
~
~
o
(oC
(6~
(*0} rp~
o
r`
`po r, mprmpo r p(o r p(o,rm~p
o * 0 r prmp(r@np(h
~
o
r`
`prDn
o r m
pop,rm
po r prYpo r pr kpo r Wjprlnpo , rmp~
o * 0
$ (
%-&rep(rnpo
(rpep(
,ruYprop (&*r ep(
,ruYpr8op ( &*rtopsj
oM
o
+y
o
(
(t
-
{oi
(r opo
&(7
r op
o
&o
:{u
,
o
(6
(
rop(sj
(
-_o
&o
&oH
op
1N{op
ob
+!(c
o
( (d
-
o
(o
o
(o
(ropo
rp(h
ruYprop (&* & .0 r *ppo
rHpprpr`pp(rp(h
o r pprpr}Zp(rp(h
o r pprprpp(rp(h
o r pprprpp(rp(h
o r pprprqp(rp(h
o r 2qprpr>qp(rp(h
o r Vqprprfqp(rp(h
o r qprpr qp(rp(h
o r qprprqp(rp(h
o r qprpr0rp(rp(h
o r Hrprpr^rp(rp(h
o o V
s
o
r rp(
9o
o
2 er rp{(oo
{(
,e{{rrp o?
o
o
o+){( rsp(r rp
srTsp o?
oV
o
(->rTdp{oi
srsp o?
oV
(*iT0 s
o T(F,{oi
oH
o[
8no
{t
og
t9?oO
o8
o\
9%9(7
r4tp
o
(
o=
.o=
:oX
9(o , Lo-r"*p(
-o+A
rDtpo6
o7
(
rmpo o n
1
;o
&
o
&r_po
r!_prprp(h
o
r`tpr tp
(
o
r!_poX
o
o,: u
o
Q*A 0 (7
r tp (6(
o - *r`pp({(6on&r}Zp({(6on&rpp({(6on&rpp({(6on&rqp({(6on&r>qp({(6on&rfqp({(6
(
:o;
Yok
~
.o;
Yok
~
3o;
Yoi
(
C
(F,rTdpsrt
p o A
o
((
: r "upo , ~~
rXu
rJu
p(6
pok~,([
(6 ~
(
rpp( (
on&* C0 r~upsj
{op
ob
8 ( c
oO
o8
o\
,/o:
,rrupo
&(o
&rpo
&+Ko6
rvp(
,o6
r2qp(
-%rupo
&(o
&rpo
&(d
:[
rvpo
&o
*0
o 6rnpo
,*rnp~
o
r vp~
o r >vprHvpr vpo r vprHvpr
wpo rwprHvprwpo r xprHvprxpo r 5zprHvprczpo r _po
r!_przpor!_
pr>{po *0
{op
ob
8(c
N % -&reprn{po
oO
o8
o\
9o:
,p(o 9 -,r{pr{p oA
(&8 r {pr|p o A
(&+druYpr`|p o ?
o8
(&+1r{pr|p o?
o8
(&(d
:
*r|
A.p?o0
o{
8(|
{op
ob
8 ( c
(oO
o8
o\
,<
o:
-fruYpr`|p o?
o8
(&+2r{pr|op?
o8
&(d
(
:_
(}
:$
*:0
(
-rprp(h
N
% -&rep~
~
~
~
*o0( rp~
~
o
r pep(
,r`pr}po + r`prDnpo ,
(
-((
rprp(h
o , .rDnprmpoC
(6r@np(h
((**0{ i(
s
+{I
-o
o
om(6o
+o
o
(6o
X
+o
o
i2oJo
oh
ow
o
o
-
,o
*|'
0
{ r'kpoo
&-
*J{{(*0H-*{oe
o[
8
o
t
o=
@oO
o
9oC
{sLrL}po{
o
o+
rpo3
(o
-
o,
rp}pot(
-&oi
(T(E,{{rTdpoA
sr }p
oA
o
oo
:u
,
o
*ALl+
E T20j(
-a{og
o
,oG
o
&*{{rTdp{oi
sr dp
oE
o*0ko
or}porWp{o{
(6o)
&o
or~porWp{o|
(6o)
&*:{(*0+o
or@~por ~pr~po)
&*0Oo
o{ok
~
(
o
-~
(
rGXp(6o)
&r_Xp{oi
(
(6o)
&rwXp{oi
(
(6o)
&r Xp{oi
(
(6o)
&rXp{ok
{oi
(
(
(6o)
&o
r~
o
pr~
r~
prpo)
po)
9
{ op
ob
r~
pr po)
+(c
o6
rvp(
-
+
-
(d
-8{op
o
1 %{op
rvp{o|
s5
o
*#,O^(((*0
r p o
{op
o
1 urY pr p r( p r r p(&r pr{pr( p
rr p(&rrn{pruYpr(
o&*p0 ;r po
r pr p r p r . p(&*~}}(
s
}*0(
r \ p(.rn p(0rx p(
rp(
}}}s
}( }(
o
s
s
o
o
s
}4sq}*0){
(
t
|(+
3*0){
(
t
|(+
3*{*{r p{ (r p (0}(2*Fr p ( *(.* { rP p { ((1*0`{o
(9
o
r p({o
&{o
{o
{o
}(0*0"{,{o
t
o*{r
,(
*rt
0{
{{
{
(^
8(^
(
((
iY(
o
r p (4
o
r- rZpp(4
( 4 o
(0*sA
_ ` {(n(
o
o
&(4.9r p (4 (4o
}
Bs
o
{
{
o,
o
-Hr p !o,!
{
+r` p!
o
!(4o
@;(E,rt p """(4(M(09(5(l(0r p ( 4 io
,##o
### (
$ $E##8o
3r p % %%(4(M(0 i.<rL p && & i &(4(08(
(
(
&{{{(+oY>r p ' ' ''(4(M(0) io
8
o
8 { %((
o
,((
s
(,ouo
(
o
jo
o
iY(
o
o
o
io
Y=\0r p ) ))(4(M(003+(0+rp p * * *(9 o
,
o
o
&*A %;
3@!a>
h00~{,u
%(
(
(
(
(
r p(
(
o
(
s
o
o
o
,
(
*
is
>}}*0T
.-{(l
-.3{(l
- *}{o
o-s*06
{o
-r p (o0*{,*}{,
{o1{,
p ({o
o r*0{ouo
o s*0{o
( s*:{oM*V(
} }*0I}(
rJ p(o
}o
}{( }*
*J{{s
*{*|{o +|oDo>3(}*(|*s~*0{9
~
%(
~
{o
-.{oP
rz p $o
~
{ o
(
{(
t
,(
{o
,(
%o(
? o{
~o
-~o,
&
@( 8 o E~
,(
, sY
~
o[~
oZ|o
+,~
o\
{( }*(Sn3
.<V}(
(z*0 {u^
o >-Mo
,Es
o
o
+
o
tx
o
-
o
u,o
s
o+o>3o
*0O0{
Y E
(0@JXcoz 8 s
*s
*s
*s
*s
*s
*s
*s
*s
*s
*s
*s
*r p{ 7(
(*0oP
X(
(
,*(
(
,
*(
(
,* (
(
,*](
(
,*^(
(
,
(
,
*`(
(
,*\(
(
,*[(
(
,*Z(
(
,*Y(
(
,**s
(
s
s
*(
*0o
u
(
z
*_(
s
/s
-
~
{o
o
i
i
2
Y N0
o
X
Y+
Y + N,/o
+!{o
o
o
-s
z{
o
,jo
(&G-2- s
3
o
&X
?3(F&*As * 0t<
-s
s * o (
- s
z}o o
}*( s
( N ( ( No
( *{*"}*{*"}*{*"}*V(
}}*{*{*
*f|oD|oD*s *:(
( * 0 (
r<p(
rp(
},r<p(
}-{-(
,(
}-s
}}}"}#s
}s
}s
} s
}*0){.
(
t
|.(
+
3 *0){.
(
t
|.(
+
3 *0){/
(
t
+|/(
3*0){/
(
t
+|/(
3*0){0
(
t
|0(+
3*0){0
(
t
|0(+
3*0){1
(
t
|1(+
3*0){1
(
t
|1(+
3*0){2
(
t
|2(+
3*0){2
(
t
|2(+
3*0){3
(
t
|3(+
3*0){3
(
t
|3(+
3*{*0$
{%(
{r2 p ({r
{*{oOoo
p{ (}+{*-({*{oOo o
{)o
&(
,(
*
0C{%
(
{.{.{+r
p{ (r {op
{
&(9
o
{ *o
r` p((
{ )o
-r p ({o
ri p{o
((
,
(
*A68
0S{%
(
{*r po({.{+rop{(roWp ({oo
r po ({$oor po o ({$oos
so{o
{oo
({o
&
,
(
*AFH
{0%(
{.{+r p{ ({opo
r pop ({opo
o q-{r p oo oo oo o B(o3o(8oqr
(o^,2{
o+-o^o,
o \ o*o ,(
{*%A0^
(
{.{+r p{ (r& p o o ({r p({%o o
{%o o{oStEo o -o o "o{oStF
s
{%
(
{o
8(
s
o @ o o o ,moo
+ Bo
o )
o+
o
{3
o
-
{o+
o
,o
o
,)oooo
s
o
(
:
,(
+ (
((
-
o
,(
*A|dO
#ANQ
E7+K
+brS p,
r p +r p((+1{,)((+r p (
r(9u
p o#&
o
(
(M
(E,
o
(r; p ( (+?{ (+sosotoV{ o!
,
((*AL 0{%(
{o
}!{!>3{s$
o
+ (
((
-
{o%
{o&
{((o'
&{!r p{! (9o
8 (
r o
o
p%-o&o
o
sosLo
o (
o
:s
((
{o
r p{o
({o(
r p{o(
({o)
{%o{o
&{)o
&
,(
*ALD` U
0
s
{ %
(
{ o
8%
(
o Eo8r+ p (
r ] p
oo
oo
oo
(8
o
or
(
+o/
pX
o
8 (
r m p oo oo oo ({o*
&{ooo+
&(
:q
1 (
,
(
-!,
(-+
(+(+(
o
8 (
{ o,
(/{ oo-
+AosoosootoV{$oooo,&oo+o_oo)o]r p o o oo oo (oo((
:
*Ad,8dz /
n30(
9{vl#
{ {Y
?Z(.
s
o
sz*
o
{Ds
oo {
(
&*(*0|!(0
-
oo {
oo (-
{(o
&*0<
{%(
{so1
,(
{o
&*#%
0=
{%(
{so1
,(
{o
&*$&
0O{o2
87{%(
{o3
,(
{8
{6o
o3x{7-o
P oo
s
(o
%(
ooo
ooo s
,(
(+r{6{39 (+Xo
(%
{ 6o
,(
ooo {6{7s
(Y
:*(2
&
0{r p({oStE
o%(
s4
s
8
oo(19:{%
o
{&+
3=o{+{o
$o
!o"{ooo;{(o5
+oX i?o6
+(7
o (8
-
oo(1,; o(o"{%
oo!
oo
oo!(
oo! (
o
+$(:
o!(
o
&
((;
-
,H
o9
o<
+(=
(>
{%o(?
-
o
,'ooo
o
(s o3"
o
+ri p((
,(
(*Ad
5+x1
+J
rbp o i2
o(*0o{,9(
X
%(
(
{-rp(
(
o
(
s
(
(
r'p (9
o
(9
o
(^
(
o
o
o
,
(
*
v}8}9}6}7*v}8}9}6}7*0c(
r-p(0rKp(0o!orup(s
}?}@}A}H}B(*0){L
(
tA
|L(+
3*0){L
(
tA
|L(+
3*{?* {K-(o#(D
}K{K*{I*{@*{A*{B*{J* ,{J+rp(}J*o rp({E%-&sA
}E{EoB
*&(*0Z$
{?%(
{Ir5p{Ao! {I B(}H(
,(
*MO
0
{?%(
{C,{CoC
- { CoD
2
{CoE
&{CoF
-}CoG
+(H
o((I
-
({
,
C
*b$ 0"{C-{D,{D
}D**0{E,{E
} E**0[{Ao/oJ
{Ao/oK
oL
+(M
%X(N
-
*.K0
({
?%
r+p(0{I.{F+rp{Ao! {I B{F ({D,Q
+?{DoO
ooU3"{DoP
{Do
-}D+X
{Do
2{HoS3!}H{F-oXrp({F,Z{FoUoQ
&oX-"{FoR
{-1
Co{F
C,
-}F}C}D}E,E{G%-&sS
}G{GoUoT
r p({GoUoU
{F-{C-{H3(
,
(
*A
0p$
{?%(
{Irp{Ao! {I B({Hrup(}H(
,(
*ce
(0 {?%
{Crp({Frpp({Irp{Ao! {I B({G
}G(
,
(
*|~
{0?d%(
{I@%{G-{F,{FoR
sV
}G{F,S{FoW
++(X
{G(Y
(Z
ssLo[
(\
-
{C9 {G,|{Co]
o^
+O(_
oG
+$(H
{Go
sLo[
s
(I
-
(`
-
}C}F(
,(
{J,{Jo *AdY8 1\ CE0$
{?%(
r+p(0{BrJp(oY-g{Ir|p{Ao! {I B({Cr)p({Fr p({Grp(}B(
,(
*
0<$
{?%(
{I,{I+rUp{Ao! {I B(o,R{F%-&sa
}F{Foob
rpo ({Fooc
+`rBp({C%-&sd
}C{CooC
-{Cos
oe
{CooD
o
, !{D%-&s
}D{Do
(
,(
*A/1
0#{I.}I{L
,o*(
rp(0rp(0}M}N}O*{M*{N*{O*(
,(
,**(
,*o*.(*2{Mof
* - *(P
oP
(Q
,*tD(*0r(
,*{M{M(2,*{O{O.*{N i{N i.*
+{N {N (a
,*X
{N i2*J(
s S
}P*{P*0w
{ P%(
{PoRoT
,4{PoRog
(
,7{PoRog
o c+{PoRoU
,(
*jl
2sS
}P*0orp("
{P%(
{PooT
,]{Poog
ooh
+(i
odr9p(
((j
-
,(
*
*T, 0 .{P%
(
{Pok
&
,
(
* "
0orp("({P(%
{PooT
9d{Poog
o{(
9.},
(-}oo
-,
(-}{@sK}oh
+0
{
od-{
-
(i
oau o b
(j
ooo
-oh
+B
(i
{od-)oau { obo{.
(j
-
}
,(
*AL=@O
0+
{P%(
{Pol
&
,(
*
2rn p(0*2{Pom
*jr'@p (s*0|
o h
+T(i
o
d,oaov-,
&
+$
;oaov3,
-
on
(j
-
*
aj(
so
}Qsp
}Rryp(
|S(q
- }S*0,
{ Q%
(
{Qor
,
(
*
0 rp(0o!rp({Q%
(
(*
{Qos
rpo! ({Qot
{ Rsou
,
(
*#\
0J{Q%
(
{Qor
{Qov
&{Rsow
&
,
(
*=?
(brp(0s( *0Kr1p(0{Q%
{Rox
-
{Qor
,
2* ?
0,
{Q%
(
(
{Qos
,
(
*
rso
}Qsp
}R(i*R{Qoy
{Q
S%(*0
#?{Qoy
l#
?Z(z
({
(|
{Qo}
o~
+'(
oo3
-o
,
Y,
-
(
,(
*U4 Z{Qo}
o~
*Z{Qo}
o~
*2rn p (0*0)
{ Q%(
{Qo
,(
*
jr'@p (s*o!*"s*s*
*v{VoOo { To
Y*0j(U
(
,
!
(
s
o
,-!\\\\\\\\(
o
jXa
!_(53f
!_*j(U! a!_*0yr p(0{To
{VoOo 3 'rp {To
(*(>
, {To
oFoG**{To
rQp (rt p (0{To
o G*0t{Uo
({
T%
{To
s
,
o
+(
,
(
soG(
-!
"*
/
A$eN}Vs
}T**jr p (s<*Js
}U(
*0+
{T%(
{To
&
,(
*
0*rp(
- rp
(
s
~W-As
W~Wo
o
+n
(
o
(
o
.T{Uo
o
-A{Uo
o
&o
(?
-
#
,
o
=sBsIl(
+ A(@{Uo
& 0u(?,=sBsI*%Y0**K{0rp (
r9p @s
o
(
o
o
(
o
(
,#o
rpo
o
(u
s
z(4(l(m(5.&&&(E,**4#~#~#~#~0
;{VoOo
(?
-r (ps
zrgp(
{ VoOo ,
r p(
uu(
}}r p(
(
,.
+v~v}v~
(}`~}
`
} v(
}w
~(rp({*:o
o
Y*{[{_{_ iKs
o
&*0s
( ,ouo
(
o
o j o
o
iY(
o
+so
iY (
o
iY 0#{[o
o
&>{[o
{[o
X
Js
o
jo
2
v{&[
o&
*
{ b{]oC*0_(
}]}^}[}\ }_ }`sE
}a}b( } c*0{[o
&*0{[o
&{_ i.G{^(
, o
&
(E,{\{]soZ(H &{\{]soZ(Hk(
{_ (
&{_(
{ ` i/
{`+
{[
Ls
s
o
i&*
i(08
(
{ _ (
o
t%o
o
{[o
&
."{\{]soZ(H &{\{]soZ(Hq
{c(+{\{]oY
s
,o
&{\{]soZ(H
.(F*(H*47G7?v %
? ~(
rp(}d*{e*"}e*{f*"}f*{g*"}g*2rp(*0Kryp(u[,(^*u\,(`*s
sv
{doN*"}d*{h*"}h*{i*"}i*{j*"}j*{k*"}k*"(m* r p(ps
o
*"(e*(
*V(d,
(do
*(
rp(rp(}l}m* ryp({m{loW*0){n
(
tL
|n(+
3*0){n
(
tL
|n(+
3*0){o
(
tM
|o(+
3*0){o
(
tM
|o(+
3*0){p
(
tN
|p(+
3*0){p
(
tN
|p(+
3*0){q
(
tO
|q(+
3*0){q
(
tO
|q(+
3*0){r
(
tP
|r(+
3*0){r
(
tP
|r(+
3*0){s
(
t
|s(+
3*0){s
(
t
|s(+
3*0){t
(
t
|t(+
3*0){t
(
t
|t(+
3*0){u
(
tQ
|u(+
3*0){u
(
tQ
|u(+
3*0){v
(
tR
|v(+
3*0){v
(
tR
|v(+
3*0){w
(
tS
|w(+
3*0){w
(
tS
|w(+
3*0){x
(
tT
|x(+
3*0){x
(
tT
|x(+
3*0){y
(
tU
|y(+
3*0){y
(
tU
|y(+
3*0){z
(
tV
|z( +
3*0){z
(
tV
|z( +
3*0){{
(
tW
|{(!
+
3*0){{
(
tW
|{(!
+
3*{|*"}|*{}*"}}*{~*"}~*"( *08uX,tX( *u_,t_(*u`,t`(*u],t](*u^,t^(*u ,t ( *u,t(*u[,( t[
*0O{n,>{no
/&(
((
( E*,ro
&0pO{(o),>{oo
/&(
((
( E*,ro
&0pO{(p),>{po
/&(
((
( E*,ro
&0pO{(q),>{qo
/&(
((
( E*,ro
&0pO{(r),>{ro
/&(
((
( E*,ro
&0pO{(s),>{so
/&(
((
( E*,ro
&0pO{(t),>{to
/&(
((
( E*,ro
&0pO{(u),>{uo
/&(
((
( E*,ro
&0pO{(v),>{vo
/&(
((
( E*,ro
&0pO{(w),>{wo
/&(
((
( E*,ro
&0pO{(x),>{xo
/&(
((
( E*,ro
&0pO{(y),>{yo
/&(
((
( E*,ro
&0pO{(z),>{zo
/&(
((
( E*,ro
&0pG{({),>{{o
/&(
(*(E,ro
&p(()
r p(0rp(0} } } } * (
{ } } { } { } * { *{ * z{ (
r
p({p({o}o*{
*{*V
v "
({r}r* { * { r
}r'@
} p*0
.(3{ { (
t
* 0 } } } } } } s
}s
}(
s
} } s
} s
} s
} } } { 3 (+} *0){
(
t
|("
+
3*0){
(
t
|("
+
3*0){
(
t
|(+
3*0){
(
t
|(+
3*0){
(
t
|(+
3*0){
(
t
|(+
3*{*"}*{*"}*{*"}*0D