ad_set_client_property { -secure f -browser f -deferred f -persistent t } module name valueWhat it does:
Sets a client (session- or browser-level) property. If $persistent is true, the new value will be written through to the database. If $deferred is true, the database write will be delayed until connection close (although calls to ad_get_client_property will still return the correct value immediately). If $secure is true, the property will not be retrievable except via a validated, secure (HTTPS) connection.Defined in: /web/philip/packages/acs-core/security-procs.tcl
Source code:
arg_parser_for_ad_set_client_property $args global ad_conn if { $secure != "f" && $ad_conn(sec_validated) != "secure" } { error "Unable to set secure property in insecure or invalid session" } set kind [ad_decode $browser "t" "browser" "session"] set id [ad_get_${kind}_id] if { $persistent == "t" } { # Write to database - either defer, or write immediately. First delete the old # value if any; then insert the new one. set dml " delete from sec_${kind}_properties where ${kind}_id = $id and module = '[DoubleApos $module]' and property_name = '[DoubleApos $name]' " if { $deferred == "t" } { ad_defer_dml $dml } else { set db [ns_db gethandle log] ns_db dml $db "begin transaction" ns_db dml $db $dml } set dml " insert into sec_${kind}_properties(${kind}_id, module, property_name, property_value, secure_p) values($id, '[DoubleApos $module]', '[DoubleApos $name]', empty_clob(), '[DoubleApos $secure]') returning property_value into :1 " if { $deferred == "t" } { ad_defer_dml $dml [list $value] } else { ns_ora clob_dml $db $dml $value ns_db dml $db "end transaction" ns_db releasehandle $db } } # Remember the new value, seeding the memoize cache with the proper value. util_memoize_seed [list sec_lookup_property $browser $id $module $name] [list $value $secure]