IE8 on väljas ja kui on ASP.NET-is kasutusel ReportViewer Contol siis tekib sinna ka printeri ikoon
kui nüüd tahta seda välja trükkida, võib ilmuda IE8 ActiveX paigaldamise hoiatusteade ja kui see paigaldamine ära teha ja siis uuesti trükkida proovida võib ilmuda veateade "Unable to load client print protocol".
Selle asja saab sisevõrgus korda IE8 sätete seadmisega:
Edasi
sätime veebilehe
lubatud sisevõrgu turvalisse tsooni
neljapäev, 26. märts 2009
CustomValidator args.IsValid = false; ja ei mitte kui midagi muud
Et mitte korduvalt sama reha peale astuda siis puust ja punaselt, et kui kasutad veebilehe peal CustomValidatorit
siis tema ServerValidate eventis tuleb väära asja teada andmiseks kasutada args.IsValid = false;
protected void CustomValidatorSolver_ServerValidate(object source, ServerValidateEventArgs args)
{
if (this.DropDownListTeostaja.SelectedValue == "-1")
{
this.CustomValidatorSolver.ErrorMessage = "Räige reeglite rikkumine";
args.IsValid = false;
}
}
sellest ei ole kasu kui kasutad
this.CustomValidatorSolver.IsValid = false;
niipea kui tuled ServerValidate meetodist välja pöörab ASP.NET CustomValidatorSolver.IsValid tagasi true peale
P.S. Mõnikord on üldse kasulikum vähem programmeerida, kui mingi asi välja ei tule, mine töölt minema ja tule
järgmine päev tagasi. Võidad pool päeva asjatut närvitsemist.
siis tema ServerValidate eventis tuleb väära asja teada andmiseks kasutada args.IsValid = false;
protected void CustomValidatorSolver_ServerValidate(object source, ServerValidateEventArgs args)
{
if (this.DropDownListTeostaja.SelectedValue == "-1")
{
this.CustomValidatorSolver.ErrorMessage = "Räige reeglite rikkumine";
args.IsValid = false;
}
}
sellest ei ole kasu kui kasutad
this.CustomValidatorSolver.IsValid = false;
niipea kui tuled ServerValidate meetodist välja pöörab ASP.NET CustomValidatorSolver.IsValid tagasi true peale
P.S. Mõnikord on üldse kasulikum vähem programmeerida, kui mingi asi välja ei tule, mine töölt minema ja tule
järgmine päev tagasi. Võidad pool päeva asjatut närvitsemist.
Blogged with the Flock Browser
teisipäev, 24. märts 2009
Kasutaja andmebaasi rollide leidmine
Vaja teada, kas andmebaasi kasutaja on mingis andmebaasi rollis. Kätte saab alloleva funktsiooniga.
SELECT [dbo].[IS_WORKER_ROLE_KUIDO_S]('AKE', 'KAMPUS_WORKER')
Mida tähele panna on see, et SQL2005/2008 ei kobise midagi selle kohta, kui kasutajal pole õigusi süsteemsete tabelite teatud ridade lugemiseks. Libisetakse lihtsalt üle ja mingit infot ei pritsita.
Kui kasutajal ULLE-l pole andmebaasis DBO õigusi aga tahab teada, kas AKE on mingis rollis siis ULLE-na sees olles päring SELECT usu.name FROM sysusers usu jätab osad read "vahele". Lahenduseks siin impersoneerimise kasutamine, ehk teeb funktsiooni WITH EXECUTE AS 'DBO' suvandiga, et korrektesid tulemusi saada
ALTER FUNCTION [dbo].[IS_WORKER_ROLE_KUIDO_S](@kasutaja NVARCHAR(25), @roll NVARCHAR(25))
RETURNS INT
WITH EXECUTE AS 'DBO' --Et oleks ligipääsu õigus kõikidele tabeli ridadele
AS
BEGIN
DECLARE @out INT
IF EXISTS( SELECT usu.name FROM
sysusers usu WITH(NOLOCK) LEFT OUTER JOIN
(sysmembers mem WITH(NOLOCK) INNER JOIN sysusers usg WITH (NOLOCK) ON mem.groupuid = usg.uid) on usu.uid = mem.memberuid
LEFT OUTER JOIN master.dbo.syslogins lo WITH (NOLOCK) ON usu.sid = lo.sid
WHERE (usu.islogin = 1 AND usu.isaliased = 0 AND usu.hasdbaccess = 1) AND
(usg.issqlrole = 1 OR usg.uid is null) AND
usu.name = @kasutaja AND usg.name=@roll )
SET @out=1
RETURN ISNULL(@out,0)
END
Blogged with the Flock Browser
Andmetäite vältimise pealepeanemine Vista peal ehk DEP
Andmetäite vältimine ehk DEP on lühidalt lahti seletatud siin
http://windowshelp.microsoft.com/Windows/et-EE/help/186de3d0-01af-4d4c-981d-674637d2f4bf1061.mspx
ja sügavamalt siin
http://support.microsoft.com/kb/875352
Kuidas seda maha ja peale panna on kirjeldatud
http://windowshelp.microsoft.com/Windows/en-US/help/1d9bb9b4-f6ba-466d-ac2b-7b8c4f8361611033.mspx
Kui on eestikeelne Vista siis piltlikult käib pealepanek nii, et avad juhtpaneeli
sealt edasi valid Süsteem
klikid Täpsustatud süsteemisätted
ja sealt vaatab Täpsemalt Jõudluse sätteid
ja lülitame DEP-i sisse
DEP hea asi selleks, et viirused nii kergesti ligi ei pääseks.
http://windowshelp.microsoft.com/Windows/et-EE/help/186de3d0-01af-4d4c-981d-674637d2f4bf1061.mspx
ja sügavamalt siin
http://support.microsoft.com/kb/875352
Kuidas seda maha ja peale panna on kirjeldatud
http://windowshelp.microsoft.com/Windows/en-US/help/1d9bb9b4-f6ba-466d-ac2b-7b8c4f8361611033.mspx
Kui on eestikeelne Vista siis piltlikult käib pealepanek nii, et avad juhtpaneeli
sealt edasi valid Süsteem
klikid Täpsustatud süsteemisätted
ja sealt vaatab Täpsemalt Jõudluse sätteid
ja lülitame DEP-i sisse
DEP hea asi selleks, et viirused nii kergesti ligi ei pääseks.
pühapäev, 22. märts 2009
ASP.NET CollapsiblePanelExtender
Kõigepealt tuleb ASPX lehe peal muuta DOCTYPE ära
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
Vaja selleks, et IE asjast aru saaks, muud(Flock, Safari, Opera, Firefox) töötavad ka
standardse
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
määranguga aga IE tahab XHTML-i (on siis tegu hullumeelsuse või geniaalsusega ?)
Extenderiga seotud asp:Panel-i kokkupaneminke käib "ClientState" sättimisega
this.PanelUusprobleem_CollapsiblePanelExtender.ClientState = "true";
paneb laiendusega seotud paneeli kokku
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
Vaja selleks, et IE asjast aru saaks, muud(Flock, Safari, Opera, Firefox) töötavad ka
standardse
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
määranguga aga IE tahab XHTML-i (on siis tegu hullumeelsuse või geniaalsusega ?)
Extenderiga seotud asp:Panel-i kokkupaneminke käib "ClientState" sättimisega
this.PanelUusprobleem_CollapsiblePanelExtender.ClientState = "true";
paneb laiendusega seotud paneeli kokku
Blogged with the Flock Browser
kolmapäev, 18. märts 2009
Veebilehe validaatorite grupi seadmine
Vaja näiteks, et kõik usercontroli validaatorid oleksid samas grupis
public void seaValidaatorGrupp(string vgrupp)
{
foreach (BaseValidator vali in this.Page.Validators)
{
vali.ValidationGroup = vgrupp;
}
}
public void seaValidaatorGrupp(string vgrupp)
{
foreach (BaseValidator vali in this.Page.Validators)
{
vali.ValidationGroup = vgrupp;
}
}
Blogged with the Flock Browser
neljapäev, 5. märts 2009
SQL SERVER 2005 süsadminnid ja CONTROL SERVER rollis olevad loginid
Algallikas:
http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/02/24/detecting-when-a-login-has-implicit-access-to-a-database.aspx
SELECT sp1.[name] [Login], 'sysadmin role' [Method]
FROM sys.server_principals sp1
JOIN sys.server_role_members srm
ON sp1.principal_id = srm.member_principal_id
JOIN sys.server_principals sp2
ON srm.role_principal_id = sp2.principal_id
WHERE sp2.NAME = 'sysadmin'
UNION ALL
SELECT sp3.[name], 'CONTROL SERVER'
FROM sys.server_principals sp3
JOIN sys.server_permissions perm
ON sp3.principal_id = perm.grantee_principal_id
WHERE perm.class = 100
AND perm.[type] = 'CL'
AND state = 'G'
ORDER BY [Login], [Method];
http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/02/24/detecting-when-a-login-has-implicit-access-to-a-database.aspx
SELECT sp1.[name] [Login], 'sysadmin role' [Method]
FROM sys.server_principals sp1
JOIN sys.server_role_members srm
ON sp1.principal_id = srm.member_principal_id
JOIN sys.server_principals sp2
ON srm.role_principal_id = sp2.principal_id
WHERE sp2.NAME = 'sysadmin'
UNION ALL
SELECT sp3.[name], 'CONTROL SERVER'
FROM sys.server_principals sp3
JOIN sys.server_permissions perm
ON sp3.principal_id = perm.grantee_principal_id
WHERE perm.class = 100
AND perm.[type] = 'CL'
AND state = 'G'
ORDER BY [Login], [Method];
Blogged with the Flock Browser
kolmapäev, 4. märts 2009
ASP.NET web.config faili krüptimine
Käima ajamiseks tuli päev otsa guugeldada. Tänud lõpuks nendele meestele
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/88b15d6b-9baa-4f4d-8942-137185bfdf56/
ASP.NET-i Veebirakendusel või WebServicel vaja turvalisuse tõstmiseks ConnectionStrings osa ära krüptida
Käima sain sellise asjaga, kasutame RSA-d
1. Loome Machine level eksporditava RSA key containeri
aspnet_regiis on programm mille leiab serveril tavaliselt C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 kataloogist
aspnet_regiis -pc "KampusKey" -exp
KampusKey on nüüd selle RSA võtme konteineri nimi, mis pannakse serveri kataloogi
C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
edasi tuleb vaadata mis konto all sul see veebirakendus/veebiteenus töötab
Teed eraldi ASPX lehe, kust selle teada saad
this.LabelIdentity.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
või vaatad IIS-i manageri alt, mis basseinis sul rakendus ujub (Application Pool)
ja annab sellele kontole (tavaliselt NT AUTHORITY\NETWORK SERVICE) RSA võtme konteinerile ligipääsu õiguse
aspnet_regiis -pa "KampusKey" "NT AUTHORITY\NETWORK SERVICE"
Peab mainima, et NETWORK SERVICE on turvalisuse koha pealt üsna hea konto veebirakenduste jooksutamiseks, veelgi parem oleks kohe endale selgeks teha
kuidas luua veebirakenduse jaoks omaette väheste õigustega konto
http://msdn.microsoft.com/en-us/library/ms998297.aspx
rakenduse web.config failis tuleb nüüd lisada rida
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" >
<configSections>
</configSections>
<configProtectedData defaultProvider="RsaProtectedConfigurationProvider" >
<providers>
<add name="KampusVoti" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" keyContainerName="KampusKey" useMachineContainer="true" />
</providers>
</configProtectedData>
<connectionStrings>
<add name="TurukampusConnectionString" connectionString="Data Source=SQLBAAS;Initial Catalog=KAMPUS;User ID=KAMPUS868;Password=HKSDF6834" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
ja nüüd krüptib selle connectionStrings osa ära
aspnet_regiis –pef "connectionStrings“ “d:\cw-turukampus_webservice” –prov “KampusVoti”
d:\cw-turukampus_webservice on see kataloog serveril ,kus sul rakenduse failid on ja
–prov “KampusVoti” peab kokku lengema web.config failis configProtectedData lisatud provider nimega, see sunnik oli juhendis mainimata
muidu ei tööta saad veateate
Parser Error Message: Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened.
Rakenduses töötab asi ühtemoodi, IIS ise krüptib/dekrüptib connectrionStrings osa lahti
using System.Web.Configuration;
System.Configuration.ConnectionStringsSection konnc = WebConfigurationManager.GetSection("connectionStrings") as System.Configuration.ConnectionStringsSection;
this.Label1.Text = konnc.ConnectionStrings["TurukampusConnectionString"].ConnectionString.Trim();
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/88b15d6b-9baa-4f4d-8942-137185bfdf56/
ASP.NET-i Veebirakendusel või WebServicel vaja turvalisuse tõstmiseks ConnectionStrings osa ära krüptida
Käima sain sellise asjaga, kasutame RSA-d
1. Loome Machine level eksporditava RSA key containeri
aspnet_regiis on programm mille leiab serveril tavaliselt C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 kataloogist
aspnet_regiis -pc "KampusKey" -exp
KampusKey on nüüd selle RSA võtme konteineri nimi, mis pannakse serveri kataloogi
C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
edasi tuleb vaadata mis konto all sul see veebirakendus/veebiteenus töötab
Teed eraldi ASPX lehe, kust selle teada saad
this.LabelIdentity.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
või vaatad IIS-i manageri alt, mis basseinis sul rakendus ujub (Application Pool)
ja annab sellele kontole (tavaliselt NT AUTHORITY\NETWORK SERVICE) RSA võtme konteinerile ligipääsu õiguse
aspnet_regiis -pa "KampusKey" "NT AUTHORITY\NETWORK SERVICE"
Peab mainima, et NETWORK SERVICE on turvalisuse koha pealt üsna hea konto veebirakenduste jooksutamiseks, veelgi parem oleks kohe endale selgeks teha
kuidas luua veebirakenduse jaoks omaette väheste õigustega konto
http://msdn.microsoft.com/en-us/library/ms998297.aspx
rakenduse web.config failis tuleb nüüd lisada rida
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" >
<configSections>
</configSections>
<configProtectedData defaultProvider="RsaProtectedConfigurationProvider" >
<providers>
<add name="KampusVoti" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" keyContainerName="KampusKey" useMachineContainer="true" />
</providers>
</configProtectedData>
<connectionStrings>
<add name="TurukampusConnectionString" connectionString="Data Source=SQLBAAS;Initial Catalog=KAMPUS;User ID=KAMPUS868;Password=HKSDF6834" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
aspnet_regiis –pef "connectionStrings“ “d:\cw-turukampus_webservice” –prov “KampusVoti”
d:\cw-turukampus_webservice on see kataloog serveril ,kus sul rakenduse failid on ja
–prov “KampusVoti” peab kokku lengema web.config failis configProtectedData lisatud provider nimega, see sunnik oli juhendis mainimata
muidu ei tööta saad veateate
Parser Error Message: Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened.
Rakenduses töötab asi ühtemoodi, IIS ise krüptib/dekrüptib connectrionStrings osa lahti
using System.Web.Configuration;
System.Configuration.ConnectionStringsSection konnc = WebConfigurationManager.GetSection("connectionStrings") as System.Configuration.ConnectionStringsSection;
this.Label1.Text = konnc.ConnectionStrings["TurukampusConnectionString"].ConnectionString.Trim();
Blogged with the Flock Browser
Tellimine:
Postitused (Atom)