Why doesn't twill show a form? - twill

I am trying to access a website using twill: https://cuentas.itesm.mx/IDMProv/portal/cn/GuestContainerPage/ITESMPageForgotPassword
On the website code there is this field that I need to fill personID, inside the form frmChRIndex
<form id="frmChRIndex" name="frmChRIndex" action="validaUsuario.htm" method="POST">
<div class="clearFields">
<div class="label-info">
Usuario (A00000000 / L00000000)(*)
</div>
<div class="field-info">
<input type="text" name="personId" id="personId" value="" maxlength="9" onblur="javascript:this.value=this.value.toUpperCase();">
</div>
</div>
</form>
When I use the command showforms on twill, this form does not appear.
It returns these forms
Form #1
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 login hidden (None) login
2 uasess hidden (None) -4301763981694819540
Form name=nav__NVL354063pageLinkForm (#2)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 navUrl hidden (None) /IDMProv/portal/cn/GuestContainerPag ...
2 uasess hidden (None) -4301763981694819540
Form name=nav__NVL354063pageLinkForm (#3)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 navUrl hidden (None) /IDMProv/portal/cn/GuestContainerPag ...
2 uasess hidden (None) -4301763981694819540
Form name=nav__NVL354063pageLinkForm (#4)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 navUrl hidden (None) /IDMProv/portal/cn/GuestContainerPag ...
2 uasess hidden (None) -4301763981694819540
Form name=nav__NVL354063pageLinkForm (#5)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 navUrl hidden (None) /IDMProv/portal/cn/GuestContainerPag ...
2 uasess hidden (None) -4301763981694819540
Form name=nav__NVL354063pageLinkForm (#6)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 navUrl hidden (None) /IDMProv/portal/cn/GuestContainerPag ...
2 uasess hidden (None) -4301763981694819540
Form name=nav__NVL354063pageLinkForm (#7)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 navUrl hidden (None) /IDMProv/portal/cn/GuestContainerPag ...
2 uasess hidden (None) -4301763981694819540
Form name=nav__NVL354063pageLinkForm (#8)
## ## __Name__________________ __Type___ __ID________ __Value__________________
1 navUrl hidden (None) /IDMProv/portal/cn/GuestContainerPag ...
2 uasess hidden (None) -4301763981694819540
Any ideas on why is this happening?

Related

I am getting an error: twill.errors.TwillAssertionError: no matching forms

I am trying to fill forms using twill package and it gives me an error.
Here is my code:
from passgen import Passgen
from emailgen import Emailgen
from twill.extensions import *
from twill.commands import *
genpass = Passgen()
genemail = Emailgen()
password = genpass.generate_pass()
email = genemail.generate_email()
go('website')
showforms()
formvalue('2', 'username', email)
formvalue('2', 'password', password)
formvalue('2', 'password_again', password)
formvalue('2', 'terms_accept', '1')
submit('12')
Here is output of this code:
==> at website
Form #2
## __Name__________________ __Type___ __ID________ __Value__________________
1 username email signup_user None
2 password password signup_pass None
3 password_again password signup_p ... None
4 signup_pass_reset hidden signup_p ... 0
5 signup_pass_reset_toggle checkbox signup_p ... None
6 email_accept_toggle checkbox email_ac ... None
7 terms_accept checkbox terms_accept None
8 enable_emailmarketing hidden enable_e ... 0
9 enable_emailproduct hidden enable_e ... 0
10 plan hidden plancode 1
11 referralcode hidden signup_r ...
12 button signup_s ... Create your free account
Traceback (most recent call last):
File "path\to\project\main.py", line 15, in <module>
formvalue('#2', 'username', email)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\site-packages\twill\commands.py", line 425, in formvalue
raise TwillAssertionError("no matching forms!")
twill.errors.TwillAssertionError: no matching forms!
I am trying to fill some forms and check box with number 7.

Kivy Buildozer returns me error while generating an .apk file. Python

I'm running 'buildozer android debug deploy run' command an it gives this error:
# Command failed: /home/kostinus/PycharmProjects/kivy_0.2/venv/bin/python -m pythonforandroid.toolchain create --dist_name=mykivy --bootstrap=sdl2 --requirements=python3,kivy --arch arm64-v8a --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/kostinus/PycharmProjects/kivy_0.2/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a" --ndk-api=21 --ignore-setup-py --debug
the full log:
# ENVIRONMENT:
# SHELL = '/bin/bash'
# SESSION_MANAGER = 'local/kostinus-K501LX:#/tmp/.ICE-unix/1965,unix/kostinus-K501LX:/tmp/.ICE-unix/1965'
# QT_ACCESSIBILITY = '1'
# SNAP_REVISION = '267'
# XDG_CONFIG_DIRS = '/etc/xdg/xdg-ubuntu:/etc/xdg'
# XDG_MENU_PREFIX = 'gnome-'
# GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'
# SNAP_REAL_HOME = '/home/kostinus'
# TERMINAL_EMULATOR = 'JetBrains-JediTerm'
# SNAP_USER_COMMON = '/home/kostinus/snap/pycharm-community/common'
# LC_ADDRESS = 'uk_UA.UTF-8'
# GNOME_SHELL_SESSION_MODE = 'ubuntu'
# LC_NAME = 'uk_UA.UTF-8'
# ...
# LC_TIME = 'uk_UA.UTF-8'
# SNAP_NAME = 'pycharm-community'
# JOURNAL_STREAM = '8:46911'
# XDG_DATA_DIRS = '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop'
# PATH = '/home/kostinus/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/kostinus/PycharmProjects/kivy_0.2/venv/bin:/home/kostinus/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
# GDMSESSION = 'ubuntu'
# DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
# GIO_LAUNCHED_DESKTOP_FILE_PID = '13568'
# GIO_LAUNCHED_DESKTOP_FILE = '/var/lib/snapd/desktop/applications/pycharm-community_pycharm-community.desktop'
# LC_NUMERIC = 'uk_UA.UTF-8'
# _ = '/home/kostinus/PycharmProjects/kivy_0.2/venv/bin/buildozer'
# PACKAGES_PATH = '/home/kostinus/.buildozer/android/packages'
# ANDROIDSDK = '/home/kostinus/.buildozer/android/platform/android-sdk'
# ANDROIDNDK = '/home/kostinus/.buildozer/android/platform/android-ndk-r19c'
# ANDROIDAPI = '27'
# ANDROIDMINAPI = '21'
#
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2
All libraries are installed successfully.
OS - Ubuntu 20.04;
python -v == 3.8;
I ran Commands in PyCharm because in terminal it gives error of clonning git-repo.
Help, please.

kivyMD APK crashes on start up (android)

I help me figure out what the problem may be.
Hi, I am having issues running my Kivy MD app on an android device.
After compiling my app into an apk I use a USB stick to transfer the
file onto an android phone. The app is successfully installed and
loads up the kivy splash screen but then the app closes. Please note
that I am not able to obtain a logcast as my mobile cannot connect
using 'run'(i have tried many methods but this isn't the issue)
resources:
kivy
kivymd
buildozer
python
-Ubuntu 20.04
I simplified things by writing a simple code to run in order to see if the issue was with my initial complex code: below is the code i ran:
1.main.py(including my kv)
from kivymd.app import MDApp
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivymd.uix.list import MDList
kv = """
ScreenManager:
StartUpScreen:
ContactScreen:
OptionsScreen:
<StartUpScreen>:
name: 'startup'
MDLabel:
text: 'ViV'
halign: 'center'
font_style: "H2"
theme_text_color: 'Primary'
MDFillRoundFlatButton:
text: 'NEXT'
pos_hint: {'center_x':0.5,'center_y':0.1}
on_press: root.manager.current = 'options'
elevation: 10
<ContactScreen>:
name: 'contact us'
BoxLayout:
orientation: 'vertical'
MDLabel:
text:'CONTACT INFORMATION'
text_size: self.size
valign: 'top'
halign: 'center'
font_style: "H5"
theme_text_color: 'Primary'
GridLayout:
cols: 1
row_default_height: 150
row_force_default: True
size_hint_y: None
height: self.minimum_height
padding: dp(10), dp(10)
spacing: dp(15)
#images here
SmartTileWithLabel:
source: "banner.jpg"
nocache: True
mipmap: True
elevation: 10
MDList:
OneLineAvatarListItem:
text: 'contact.viv.rsa#gmail.com'
IconLeftWidget:
icon:"email"
MDList:
OneLineAvatarListItem:
text: 'Call us on 081 424 9121\\n\ 083 730 3544'
IconLeftWidget:
icon:"phone"
MDList:
OneLineAvatarListItem:
text:'Check us out : #viv_rsa'
IconLeftWidget:
icon:"instagram"
MDList:
OneLineAvatarListItem:
text:'Find us on Facebook: VIV App'
IconLeftWidget:
icon:"facebook"
Widget:
MDFillRoundFlatButton:
text: 'BACK'
pos_hint: {'center_x':0.5,'center_y':0.05}
on_press: root.manager.current = 'options'
elevation: 10
<OptionsScreen>:
name: "options"
BoxLayout:
canvas:
Rectangle:
source: "COVERGIRL.jpg"
pos: self.pos
size: self.size
BoxLayout:
MDFillRoundFlatButton:
text: "PRODUCTS & SERVICES"
pos_hint: {'center_x':0.5,'center_y':0.55}
#on_release:root.manager.current= "city"
elevation: 10
MDFillRoundFlatButton:
text: "CONTACT US"
pos_hint: {'center_x':0.5,'center_y':0.45}
on_release: root.manager.current= "contact us"
elevation: 10
MDLabel:
text: 'not designed for children'
pos_hint: {'center_x':0.8,'center_y':0.08}
font_style: "Overline"
color: 255,255,255,1
"""
class StartUpScreen(Screen):
pass
class ContactScreen(Screen):
pass
class OptionsScreen(Screen):
pass
sm = ScreenManager()
sm.add_widget(StartUpScreen(name='startup'))
sm.add_widget(ContactScreen(name='contact us'))
sm.add_widget(OptionsScreen(name='options'))
class MainApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Red"
self.theme_cls.primary_hue = "A700"
self.theme_cls.theme_style = 'Dark'
screen = Builder.load_string(kv)
return screen
MainApp().run()
2.buildozer.spec file
> [app]
>
> # (str) Title of your application title = VIV
>
> # (str) Package name package.name = MainApp
>
> # (str) Package domain (needed for android/ios packaging) package.domain = org.viv
>
> # (str) Source code where the main.py live source.dir = .
>
> # (list) Source files to include (let empty to include all the files) source.include_exts = py,png,jpg,kv,atlas,xml,iml
>
> # (list) List of inclusions using pattern matching
> #source.include_patterns = assets/*,images/*.png
>
> # (list) Source files to exclude (let empty to not exclude anything)
> #source.exclude_exts = spec
>
> # (list) List of directory to exclude (let empty to not exclude anything)
> #source.exclude_dirs = tests, bin
>
> # (list) List of exclusions using pattern matching
> #source.exclude_patterns = license,images/*/*.jpg
>
> # (str) Application versioning (method 1) version = 0.2
>
> # (str) Application versioning (method 2)
> # version.regex = __version__ = ['"](.*)['"]
> # version.filename = %(source.dir)s/main.py
>
> # (list) Application requirements
> # comma separated e.g. requirements = sqlite3,kivy requirements = python3,kivy,https://github.com/kivymd/KivyMD/archive/master.zip,pygments,sdl2_ttf==2.0.15
>
> # (str) Custom source folders for requirements
> # Sets custom source for any requirements with recipes requirements.source.kivymd =kivymd
>
> # (list) Garden requirements
> #garden_requirements =
>
> # (str) Presplash of the application
> #presplash.filename = %(source.dir)s/data/presplash.png
>
> # (str) Icon of the application
> #icon.filename = %(source.dir)s/data/icon.png
>
> # (str) Supported orientation (one of landscape, sensorLandscape, portrait or all) orientation = portrait
>
> # (list) List of service to declare
> #services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
>
> #
> # OSX Specific
> #
>
> #
> # author = © Copyright Info
>
> # change the major version of python used by the app
> #osx.python_version = 3
>
> # Kivy version to use
> #osx.kivy_version = 1.9.1
>
> #
> # Android specific
> #
>
> # (bool) Indicate if the application should be fullscreen or not fullscreen = 1
>
> # (string) Presplash background color (for new android toolchain)
> # Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
> # red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
> # darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
> # olive, purple, silver, teal. android.presplash_color = #FFFFFF
>
> # (list) Permissions android.permissions = INTERNET
>
> # (int) Target Android API, should be as high as possible. android.api = 29
>
> # (int) Minimum API your APK will support.
> #android.minapi = 21
>
> # (int) Android SDK version to use
> #android.sdk = 20
>
> # (str) Android NDK version to use
> #android.ndk = 19b
>
> # (int) Android NDK API to use. This is the minimum API your app will support, it should usually match android.minapi.
> #android.ndk_api = 21
>
> # (bool) Use --private data storage (True) or --dir public storage (False)
> #android.private_storage = True
>
> # (str) Android NDK directory (if empty, it will be automatically downloaded.)
> #android.ndk_path =
>
> # (str) Android SDK directory (if empty, it will be automatically downloaded.)
> #android.sdk_path =
>
> # (str) ANT directory (if empty, it will be automatically downloaded.)
> #android.ant_path =
>
> # (bool) If True, then skip trying to update the Android sdk
> # This can be useful to avoid excess Internet downloads or save time
> # when an update is due and you just want to test/build your package
> # android.skip_update = False
>
> # (bool) If True, then automatically accept SDK license
> # agreements. This is intended for automation only. If set to False,
> # the default, you will be shown the license when first running
> # buildozer.
> # android.accept_sdk_license = False
>
> # (str) Android entry point, default is ok for Kivy-based app
> #android.entrypoint = org.renpy.android.PythonActivity
>
> # (str) Android app theme, default is ok for Kivy-based app
> # android.apptheme = "#android:style/Theme.NoTitleBar"
>
> # (list) Pattern to whitelist for the whole project
> #android.whitelist =
>
> # (str) Path to a custom whitelist file
> #android.whitelist_src =
>
> # (str) Path to a custom blacklist file
> #android.blacklist_src =
>
> # (list) List of Java .jar files to add to the libs so that pyjnius can access
> # their classes. Don't add jars that you do not need, since extra jars can slow
> # down the build process. Allows wildcards matching, for example:
> # OUYA-ODK/libs/*.jar
> #android.add_jars = foo.jar,bar.jar,path/to/more/*.jar
>
> # (list) List of Java files to add to the android project (can be java or a
> # directory containing the files)
> #android.add_src =
>
> # (list) Android AAR archives to add (currently works only with sdl2_gradle
> # bootstrap)
> #android.add_aars =
>
> # (list) Gradle dependencies to add (currently works only with sdl2_gradle
> # bootstrap)
> #android.gradle_dependencies =
>
>
> # (list) Android additional libraries to copy into libs/armeabi
> #android.add_libs_armeabi = libs/android/*.so
> #android.add_libs_armeabi_v7a = libs/android-v7/*.so
> #android.add_libs_arm64_v8a = libs/android-v8/*.so
> #android.add_libs_x86 = libs/android-x86/*.so
> #android.add_libs_mips = libs/android-mips/*.so
>
> # (bool) Indicate whether the screen should stay on
> # Don't forget to add the WAKE_LOCK permission if you set this to True
> #android.wakelock = False
>
> # (list) Android application meta-data to set (key=value format)
> #android.meta_data =
>
> # (list) Android library project to add (will be added in the
> # project.properties automatically.)
> #android.library_references =
>
> # (list) Android shared libraries which will be added to AndroidManifest.xml using <uses-library> tag
> #android.uses_library =
>
> # (str) Android logcat filters to use
> #android.logcat_filters = *:S python:D
>
> # (bool) Copy library instead of making a libpymodules.so
> #android.copy_libs = 1
>
> # (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64 android.arch = armeabi-v7a
>
> # (int) overrides automatic versionCode computation (used in build.gradle)
> # this is not the same as app version and should only be edited if you know what you're doing
> # android.numeric_version = 1
>
> #
> # Python for android (p4a) specific
> #
>
> # (str) python-for-android fork to use, defaults to upstream (kivy)
> #p4a.fork = kivy
>
> # (str) python-for-android branch to use, defaults to master
> #p4a.branch = master
>
> # (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
> #p4a.source_dir =
>
> # (str) The directory in which python-for-android should look for your own build recipes (if any)
> #p4a.local_recipes =
>
> # (str) Filename to the hook for p4a
> #p4a.hook =
>
> # (str) Bootstrap to use for android builds
> # p4a.bootstrap = sdl2
>
> # (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
> #p4a.port =
>
>
> #
> # iOS specific
> #
>
> # (str) Path to a custom kivy-ios folder
> #ios.kivy_ios_dir = ../kivy-ios
> # Alternately, specify the URL and branch of a git checkout: ios.kivy_ios_url = https://github.com/kivy/kivy-ios
> ios.kivy_ios_branch = master
>
> # Another platform dependency: ios-deploy
> # Uncomment to use a custom checkout
> #ios.ios_deploy_dir = ../ios_deploy
> # Or specify URL and branch ios.ios_deploy_url = https://github.com/phonegap/ios-deploy ios.ios_deploy_branch = 1.7.0
>
> # (str) Name of the certificate to use for signing the debug version
> # Get a list of available identities: buildozer ios list_identities
> #ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"
>
> # (str) Name of the certificate to use for signing the release version
> #ios.codesign.release = %(ios.codesign.debug)s
>
>
> [buildozer]
>
> # (int) Log level (0 = error only, 1 = info, 2 = debug (with command output)) log_level = 2
>
> # (int) Display warning if buildozer is run as root (0 = False, 1 = True) warn_on_root = 1
>
> # (str) Path to build artifact storage, absolute or relative to spec file
> # build_dir = ./.buildozer
>
> # (str) Path to build output (i.e. .apk, .ipa) storage
> # bin_dir = ./bin
>
> # -----------------------------------------------------------------------------
> # List as sections
> #
> # You can define all the "list" as [section:key].
> # Each line will be considered as a option to the list.
> # Let's take [app] / source.exclude_patterns.
> # Instead of doing:
> #
> #[app]
> #source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
> #
> # This can be translated into:
> #
> #[app:source.exclude_patterns]
> #license
> #data/audio/*.wav
> #data/images/original/*
> #
>
>
> # -----------------------------------------------------------------------------
> # Profiles
> #
> # You can extend section / key with a profile
> # For example, you want to deploy a demo version of your application without
> # HD content. You could first change the title to add "(demo)" in the name
> # and extend the excluded directories to remove the HD content.
> #
> #[app#demo]
> #title = My Application (demo)
> #
> #[app:source.exclude_patterns#demo]
> #images/hd/*
> #
> # Then, invoke the command line with the "demo" profile:
> #
> #buildozer --profile demo android debug
This is the log i get when i successfully ran my app in comand prompt(windows)
This is the log i get when i successfully ran my app in comand prompt(windows)
Okay. So that didn’t work for me what worked was adding kivy==2.0.0, kivymd==0.104.1
In your requirements line in your buildozer.spec file, use this
requirements = python3,kivy==2.0.0,https://github.com/kivymd/KivyMd/archive/master.zip,pygments,sdl2_ttf==2.0.15,pillow,docutils,plyer
This worked for me.

BeautifulSoup - find_all div tags with different class name

I want to select all <div> where class name is either post has-profile bg2 OR post has-profile bg1 but not last one i.e. panel
<div id="6" class="post has-profile bg2"> some text 1 </div>
<div id="7" class="post has-profile bg1"> some text 2 </div>
<div id="8" class="post has-profile bg2"> some text 3 </div>
<div id="9" class="post has-profile bg1"> some text 4 </div>
<div class="panel bg1" id="abc"> ... </div>
select() is matching only single occurrence. I'm trying it with find_all(), but bs4 is not able to find it.
if soup.find(class_ = re.compile(r"post has-profile [bg1|bg2]")):
posts = soup.find_all(class_ = re.compile(r"post has-profile [bg1|bg2]"))
How to solve it with regex and without regex? Thanks.
You can use builtin CSS selector within BeautifulSoup:
data = """<div id="6" class="post has-profile bg2"> some text 1 </div>
<div id="7" class="post has-profile bg1"> some text 2 </div>
<div id="8" class="post has-profile bg2"> some text 3 </div>
<div id="9" class="post has-profile bg1"> some text 4 </div>
<div class="panel bg1" id="abc"> ... </div>"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(data, 'lxml')
divs = soup.select('div.post.has-profile.bg2, div.post.has-profile.bg1')
for div in divs:
print(div)
print('-' * 80)
Prints:
<div class="post has-profile bg2" id="6"> some text 1 </div>
--------------------------------------------------------------------------------
<div class="post has-profile bg2" id="8"> some text 3 </div>
--------------------------------------------------------------------------------
<div class="post has-profile bg1" id="7"> some text 2 </div>
--------------------------------------------------------------------------------
<div class="post has-profile bg1" id="9"> some text 4 </div>
--------------------------------------------------------------------------------
The 'div.post.has-profile.bg2, div.post.has-profile.bg1' selector selects all <div> tags with class "post hast-profile bg2" and all <div> tags with class "post hast-profile bg1".
You can define a function that describes the tags of interest:
def test_tag(tag):
return tag.name=='div' \
and tag.has_attr('class') \
and "post" in tag['class'] \
and "has-profile" in tag['class'] \
and ("bg1" in tag['class'] or "bg2" in tag['class']) \
and "panel" not in tag['class']
And apply the function to the "soup":
soup.findAll(test_tag)
Using Regex.
Try:
from bs4 import BeautifulSoup
import re
s = """<div id="6" class="post has-profile bg2"> some text 1 </div>
<div id="7" class="post has-profile bg1"> some text 2 </div>
<div id="8" class="post has-profile bg2"> some text 3 </div>
<div id="9" class="post has-profile bg1"> some text 4 </div>
<div class="panel bg1" id="abc"> ... </div>"""
soup = BeautifulSoup(s, "html.parser")
for i in soup.find_all("div", class_=re.compile(r"post has-profile bg(1|2)")):
print(i)
Output:
<div class="post has-profile bg2" id="6"> some text 1 </div>
<div class="post has-profile bg1" id="7"> some text 2 </div>
<div class="post has-profile bg2" id="8"> some text 3 </div>
<div class="post has-profile bg1" id="9"> some text 4 </div>

Do http(s) call in windows require process elevation for passing windows desktop app certification

We are planning to go for windows 8.1 desktop app certification. The app is in c++-CLI. One of the requirements of the certification is that the app should be run under App Verifier for detecting errors.
The App connects to our company server(s) for all its data needs. So basically all calls are HTTPS.To be sure, we wanted to test a simple win32 console application (in VS2013 professional trial version on windows 8.1 x64) under App Verifier and for http(s) related calls, for which we used windows.web.httpclient.
The application when ran “asInvoker” in standard user mode with UAC enabled, under app verifier (and process monitor) failed giving out some luaPriv errors related to winsock2 registry. But with SUA, there were no errors. App Verfier Log:
<avrf:logEntry Time="2014-05-06 : 17:44:16" LayerName="LuaPriv" StopCode="0x332D" Severity="Error">
<avrf:message>The application was denied access to an object.</avrf:message>
<avrf:formatmessage>RegOpenKeyExW: Key (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WinSock2\Parameters) is denied &apos;DELETE READ_CONTROL WRITE_DAC WRITE_OWNER KEY_QUERY_VALUE KEY_SET_VALUE KEY_CREATE_SUB_KEY KEY_ENUMERATE_SUB_KEYS KEY_NOTIFY KEY_CREATE_LINK&apos; access with error 0x5.</avrf:formatmessage>
<avrf:parameter1>5 - Error returned</avrf:parameter1>
<avrf:parameter2>f003f - Access Requested (if applicable)</avrf:parameter2>
<avrf:parameter3>f003f - Access Requested (for compatibility)</avrf:parameter3>
<avrf:parameter4>0 - n/a</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfluapriv!+7ff962d985c8 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d9283f ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1d1 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+15b0 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1551 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1440 ( # 0)</avrf:trace>
<avrf:trace>vfnet!+7ff962cfb42e ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2614 ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2f44 ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetTimeToSystemTimeA+ad ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetOpenW+12f ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!DllCanUnloadNow+4c3b ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf2bab ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf24e3 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4ba86 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4a32a ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf4325 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4eb32 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c46098 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c45403 ( # 0)</avrf:trace>
<avrf:trace>ConsoleApplication1!Windows::Web::Http::IHttpClient::GetAsync+32 (c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 # 15732480)</avrf:trace>
<avrf:trace>ConsoleApplication1!main+446 (c:\users\mswarna\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp # 83)</avrf:trace>
<avrf:trace>ConsoleApplication1!_main+9d (f:\dd\vctools\winrt\vccorlib\climain.cpp # 52)</avrf:trace>
<avrf:trace>ConsoleApplication1!__tmainCRTStartup+10f (f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c # 626)</avrf:trace>
<avrf:trace>KERNEL32!BaseThreadInitThunk+d ( # 0)</avrf:trace>
<avrf:trace>ntdll!RtlUserThreadStart+1d ( # 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2014-05-06 : 17:44:16" LayerName="LuaPriv" StopCode="0x331B" Severity="Error">
<avrf:message>Access was restricted to trusted users only.</avrf:message>
<avrf:formatmessage>RegOpenKeyExW: Key (\REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters) only grants requested &apos;KEY_SET_VALUE&apos; to &apos;BUILTIN\Administrators, NT AUTHORITY\SYSTEM&apos;</avrf:formatmessage>
<avrf:parameter1>7ff962d835b0 - Object Type</avrf:parameter1>
<avrf:parameter2>16535e9f60 - Object Name</avrf:parameter2>
<avrf:parameter3>2 - Access Mask</avrf:parameter3>
<avrf:parameter4>16535e7fa0 - String SID</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfluapriv!+7ff962d88714 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d888d2 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88d20 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88e99 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d893ca ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d895f9 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d928ec ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1d1 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+15b0 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1551 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1440 ( # 0)</avrf:trace>
<avrf:trace>vfnet!+7ff962cfb42e ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2614 ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2f44 ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetTimeToSystemTimeA+ad ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetOpenW+12f ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!DllCanUnloadNow+4c3b ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf2bab ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf24e3 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4ba86 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4a32a ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf4325 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4eb32 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c46098 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c45403 ( # 0)</avrf:trace>
<avrf:trace>ConsoleApplication1!Windows::Web::Http::IHttpClient::GetAsync+32 (c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 # 15732480)</avrf:trace>
<avrf:trace>ConsoleApplication1!main+446 (c:\users\mswarna\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp # 83)</avrf:trace>
<avrf:trace>ConsoleApplication1!_main+9d (f:\dd\vctools\winrt\vccorlib\climain.cpp # 52)</avrf:trace>
<avrf:trace>ConsoleApplication1!__tmainCRTStartup+10f (f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c # 626)</avrf:trace>
<avrf:trace>KERNEL32!BaseThreadInitThunk+d ( # 0)</avrf:trace>
<avrf:trace>ntdll!RtlUserThreadStart+1d ( # 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2014-05-06 : 17:44:16" LayerName="LuaPriv" StopCode="0x331B" Severity="Error">
<avrf:message>Access was restricted to trusted users only.</avrf:message>
<avrf:formatmessage>RegOpenKeyExW: Key (\REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters) only grants requested &apos;KEY_CREATE_SUB_KEY&apos; to &apos;BUILTIN\Administrators, NT AUTHORITY\SYSTEM&apos;</avrf:formatmessage>
<avrf:parameter1>7ff962d835b0 - Object Type</avrf:parameter1>
<avrf:parameter2>16535e9f60 - Object Name</avrf:parameter2>
<avrf:parameter3>4 - Access Mask</avrf:parameter3>
<avrf:parameter4>16535f3fa0 - String SID</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfluapriv!+7ff962d88714 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d888d2 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88d20 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88e99 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d893ca ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d895f9 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d928ec ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1d1 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+15b0 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1551 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1440 ( # 0)</avrf:trace>
<avrf:trace>vfnet!+7ff962cfb42e ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2614 ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2f44 ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetTimeToSystemTimeA+ad ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetOpenW+12f ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!DllCanUnloadNow+4c3b ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf2bab ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf24e3 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4ba86 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4a32a ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf4325 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4eb32 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c46098 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c45403 ( # 0)</avrf:trace>
<avrf:trace>ConsoleApplication1!Windows::Web::Http::IHttpClient::GetAsync+32 (c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 # 15732480)</avrf:trace>
<avrf:trace>ConsoleApplication1!main+446 (c:\users\mswarna\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp # 83)</avrf:trace>
<avrf:trace>ConsoleApplication1!_main+9d (f:\dd\vctools\winrt\vccorlib\climain.cpp # 52)</avrf:trace>
<avrf:trace>ConsoleApplication1!__tmainCRTStartup+10f (f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c # 626)</avrf:trace>
<avrf:trace>KERNEL32!BaseThreadInitThunk+d ( # 0)</avrf:trace>
<avrf:trace>ntdll!RtlUserThreadStart+1d ( # 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2014-05-06 : 17:44:16" LayerName="LuaPriv" StopCode="0x331B" Severity="Error">
<avrf:message>Access was restricted to trusted users only.</avrf:message>
<avrf:formatmessage>RegOpenKeyExW: Key (\REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters) only grants requested &apos;KEY_CREATE_LINK&apos; to &apos;BUILTIN\Administrators, NT AUTHORITY\SYSTEM&apos;</avrf:formatmessage>
<avrf:parameter1>7ff962d835b0 - Object Type</avrf:parameter1>
<avrf:parameter2>16535e9f60 - Object Name</avrf:parameter2>
<avrf:parameter3>20 - Access Mask</avrf:parameter3>
<avrf:parameter4>16535fbfa0 - String SID</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfluapriv!+7ff962d88714 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d888d2 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88d20 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88e99 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d893ca ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d895f9 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d928ec ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1d1 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+15b0 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1551 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1440 ( # 0)</avrf:trace>
<avrf:trace>vfnet!+7ff962cfb42e ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2614 ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2f44 ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetTimeToSystemTimeA+ad ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetOpenW+12f ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!DllCanUnloadNow+4c3b ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf2bab ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf24e3 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4ba86 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4a32a ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf4325 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4eb32 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c46098 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c45403 ( # 0)</avrf:trace>
<avrf:trace>ConsoleApplication1!Windows::Web::Http::IHttpClient::GetAsync+32 (c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 # 15732480)</avrf:trace>
<avrf:trace>ConsoleApplication1!main+446 (c:\users\mswarna\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp # 83)</avrf:trace>
<avrf:trace>ConsoleApplication1!_main+9d (f:\dd\vctools\winrt\vccorlib\climain.cpp # 52)</avrf:trace>
<avrf:trace>ConsoleApplication1!__tmainCRTStartup+10f (f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c # 626)</avrf:trace>
<avrf:trace>KERNEL32!BaseThreadInitThunk+d ( # 0)</avrf:trace>
<avrf:trace>ntdll!RtlUserThreadStart+1d ( # 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2014-05-06 : 17:44:16" LayerName="LuaPriv" StopCode="0x331B" Severity="Error">
<avrf:message>Access was restricted to trusted users only.</avrf:message>
<avrf:formatmessage>RegOpenKeyExW: Key (\REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters) only grants requested &apos;DELETE&apos; to &apos;BUILTIN\Administrators, NT AUTHORITY\SYSTEM&apos;</avrf:formatmessage>
<avrf:parameter1>7ff962d835b0 - Object Type</avrf:parameter1>
<avrf:parameter2>16535e9f60 - Object Name</avrf:parameter2>
<avrf:parameter3>10000 - Access Mask</avrf:parameter3>
<avrf:parameter4>16535f5fa0 - String SID</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfluapriv!+7ff962d88714 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d888d2 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88d20 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88e99 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d893fe ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d895f9 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d928ec ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1d1 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+15b0 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1551 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1440 ( # 0)</avrf:trace>
<avrf:trace>vfnet!+7ff962cfb42e ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2614 ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2f44 ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetTimeToSystemTimeA+ad ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetOpenW+12f ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!DllCanUnloadNow+4c3b ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf2bab ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf24e3 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4ba86 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4a32a ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf4325 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4eb32 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c46098 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c45403 ( # 0)</avrf:trace>
<avrf:trace>ConsoleApplication1!Windows::Web::Http::IHttpClient::GetAsync+32 (c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 # 15732480)</avrf:trace>
<avrf:trace>ConsoleApplication1!main+446 (c:\users\mswarna\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp # 83)</avrf:trace>
<avrf:trace>ConsoleApplication1!_main+9d (f:\dd\vctools\winrt\vccorlib\climain.cpp # 52)</avrf:trace>
<avrf:trace>ConsoleApplication1!__tmainCRTStartup+10f (f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c # 626)</avrf:trace>
<avrf:trace>KERNEL32!BaseThreadInitThunk+d ( # 0)</avrf:trace>
<avrf:trace>ntdll!RtlUserThreadStart+1d ( # 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2014-05-06 : 17:44:16" LayerName="LuaPriv" StopCode="0x331B" Severity="Error">
<avrf:message>Access was restricted to trusted users only.</avrf:message>
<avrf:formatmessage>RegOpenKeyExW: Key (\REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters) only grants requested &apos;WRITE_DAC&apos; to &apos;BUILTIN\Administrators, NT AUTHORITY\SYSTEM&apos;</avrf:formatmessage>
<avrf:parameter1>7ff962d835b0 - Object Type</avrf:parameter1>
<avrf:parameter2>16535e9f60 - Object Name</avrf:parameter2>
<avrf:parameter3>40000 - Access Mask</avrf:parameter3>
<avrf:parameter4>16535fffa0 - String SID</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfluapriv!+7ff962d88714 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d888d2 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88d20 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88e99 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d893fe ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d895f9 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d928ec ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1d1 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+15b0 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1551 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1440 ( # 0)</avrf:trace>
<avrf:trace>vfnet!+7ff962cfb42e ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2614 ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2f44 ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetTimeToSystemTimeA+ad ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetOpenW+12f ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!DllCanUnloadNow+4c3b ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf2bab ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf24e3 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4ba86 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4a32a ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf4325 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4eb32 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c46098 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c45403 ( # 0)</avrf:trace>
<avrf:trace>ConsoleApplication1!Windows::Web::Http::IHttpClient::GetAsync+32 (c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 # 15732480)</avrf:trace>
<avrf:trace>ConsoleApplication1!main+446 (c:\users\mswarna\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp # 83)</avrf:trace>
<avrf:trace>ConsoleApplication1!_main+9d (f:\dd\vctools\winrt\vccorlib\climain.cpp # 52)</avrf:trace>
<avrf:trace>ConsoleApplication1!__tmainCRTStartup+10f (f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c # 626)</avrf:trace>
<avrf:trace>KERNEL32!BaseThreadInitThunk+d ( # 0)</avrf:trace>
<avrf:trace>ntdll!RtlUserThreadStart+1d ( # 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2014-05-06 : 17:44:16" LayerName="LuaPriv" StopCode="0x331B" Severity="Error">
<avrf:message>Access was restricted to trusted users only.</avrf:message>
<avrf:formatmessage>RegOpenKeyExW: Key (\REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\WinSock2\Parameters) only grants requested &apos;WRITE_OWNER&apos; to &apos;BUILTIN\Administrators, NT AUTHORITY\SYSTEM&apos;</avrf:formatmessage>
<avrf:parameter1>7ff962d835b0 - Object Type</avrf:parameter1>
<avrf:parameter2>16535e9f60 - Object Name</avrf:parameter2>
<avrf:parameter3>80000 - Access Mask</avrf:parameter3>
<avrf:parameter4>16535fdfa0 - String SID</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfluapriv!+7ff962d88714 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d888d2 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88d20 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d88e99 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d893fe ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d895f9 ( # 0)</avrf:trace>
<avrf:trace>vfluapriv!+7ff962d928ec ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1d1 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+15b0 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1551 ( # 0)</avrf:trace>
<avrf:trace>WS2_32!WahCreateHandleContextTable+1440 ( # 0)</avrf:trace>
<avrf:trace>vfnet!+7ff962cfb42e ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2614 ( # 0)</avrf:trace>
<avrf:trace>WININET!UrlCacheCreateContainer+2f44 ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetTimeToSystemTimeA+ad ( # 0)</avrf:trace>
<avrf:trace>WININET!InternetOpenW+12f ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!DllCanUnloadNow+4c3b ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf2bab ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf24e3 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4ba86 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4a32a ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960bf4325 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c4eb32 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c46098 ( # 0)</avrf:trace>
<avrf:trace>Windows.Web.Http!+7ff960c45403 ( # 0)</avrf:trace>
<avrf:trace>ConsoleApplication1!Windows::Web::Http::IHttpClient::GetAsync+32 (c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 # 15732480)</avrf:trace>
<avrf:trace>ConsoleApplication1!main+446 (c:\users\mswarna\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp # 83)</avrf:trace>
<avrf:trace>ConsoleApplication1!_main+9d (f:\dd\vctools\winrt\vccorlib\climain.cpp # 52)</avrf:trace>
<avrf:trace>ConsoleApplication1!__tmainCRTStartup+10f (f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c # 626)</avrf:trace>
<avrf:trace>KERNEL32!BaseThreadInitThunk+d ( # 0)</avrf:trace>
<avrf:trace>ntdll!RtlUserThreadStart+1d ( # 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
Sample code:
Windows::Web::Http::HttpClient^ httpClient;
Windows::Web::Http::HttpResponseMessage^ response;
httpClient = ref new HttpClient();
HttpRequestHeaderCollection ^headers = httpClient->DefaultRequestHeaders;
headers->UserAgent->ParseAdd("ie");
headers->UserAgent->ParseAdd("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
Uri^ resourceUri;
response = ref new HttpResponseMessage();
String^ uriString = "http://yahoo.co.in";
try
{
resourceUri = ref new Uri(uriString);
}
catch (Exception ^ex)
{
cout << "\nInvalid URI, please re-enter a valid URI.";
return 0;
}
if (resourceUri->SchemeName != "http" && resourceUri->SchemeName != "https")
{
cout << "\nOnly 'http' and 'https' schemes supported. Please re-enter URI";
return 0;
}
String^ responseBodyAsText;
cout << "\nWaiting for response ...";
create_task(httpClient->GetAsync(resourceUri)).then([=](HttpResponseMessage^ response)
{
response->EnsureSuccessStatusCode();
String^ outputStr = response->StatusCode.ToString() + " " + response->ReasonPhrase;
cout << outputStr->Data();
return create_task(response->Content->ReadAsStringAsync());
}).then([=](String^ responseBodyAsText){
wstring fooW(responseBodyAsText->Begin());
string fooA(fooW.begin(), fooW.end());
const char* charStr = fooA.c_str();
cout << "\n Response Data = " << charStr;
}).then([=](task<void> prevTask)
{
try
{
prevTask.get();
}
catch (Exception ^ex)
{
String^ errorStr = "Error = " + ex->HResult + " Message: " + ex->Message;
cout << errorStr->Data();
return;
}
});
Steps to create the project [steps 3,4,5 adds WinRT Support for using windows.web.httpclient]:
Open VS 2013 professional in standard user mode.
Go to File->New->Project->installed->templates->Visual C++->Win32->Win 32 Console Application and create.
In the C/C++->General tab, set "Consume Windows Runtime Extension" to Yes (/ZW)
Set /Gm
Add Windows.winmd and Platform.winmd paths to "Additional #using Directories"
Can we ignore these errors or is there any other alternative way of accomplishing http(s) task?
One approach is to go for an Out-of-Proc COM server for http related tasks and the app would use COM Elevation Moniker to elevate out-of-proc server (tried and succeeded without any errors in app verifier).
[Again, isn’t this COM elevation a bit complicated(at least in this scenario) and for every call we have to elevate the process and show the UAC shield icon?]
If there is no other alternative, but to go for elevation, then I have following doubts:
For handling network related tasks from UAC perspective, should we go for "Admin COM Object Model" or "Back-End Service Model"?
For every http(s) call, the user has to be prompted for elevation with UAC shield icon?
Should both COM client as well as COM server pass App verifier tests? Or only client should be checked with App Verifier? If com server should pass as well, then are there any recommended design changes (like starting COM server in admin mode during installation etc.) that can we should consider as currently COM server throws LuaPriv related errors with App Verifier during it's instantiation when all COM initialization takes place.

Resources