Android 11 Package Visibilty Https - xamarin.forms

Hi upgrading to Android 11 and following this guidance
https://devblogs.microsoft.com/xamarin/android-11-package-visibility/
However I dont understand the following query.What is this https scheme actually means?
Is it to allow to make https calls?
Suggestions?
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>
Also is there a link of all of the queries and what they do?

The custom URL Scheme in Android is an in-page jump protocol, which can also be called URLRouter. It opens an Activity through a route similar to opening a web page, rather than directly jumping through an explicit Intent.
The URL Scheme method is to configure the activity in the manifest that can accept the Scheme mode to start. When a call is needed, the URI of the Scheme protocol is added to the Intent in the form of Data, and the activity is called implicitly.
You could read it at Deep Links.

Related

Seam 2 - Redirect to Specific Page if No Captured View

I have a Seam 2 application (specifically 2.3.1). Currently the implementation for login is to always redirect to /home.xhtml. Right now I'm working on a request to be able to redirect to the requested view if it requires logging in, instead of always redirecting to the homepage after login. I found and successfully implemented that part with the following addition to components.xml:
<event type="org.jboss.seam.security.notLoggedIn">
<action execute="#{redirect.captureCurrentView}"/>
</event>
<event type="org.jboss.seam.security.postAuthenticate">
<action execute="#{redirect.returnToCapturedView}"/>
</event>
My question is, how do I expand upon that functionality to provide a redirect if there is no captured view to return to? For example, if instead of being brought to the login page because a page requires authentication, I navigate to the login page via a link on the public home page?

Intent Redirection Vulnerability Android Content Provider

There is a content provider in the application that I send a sticker to the whats up application.
<provider
android:name=".whatsappsticker.StickerContentProvider"
android:authorities="${stickerContentProviderAuthority}"
android:enabled="true"
android:exported="true"
android:readPermission="com.whatsapp.sticker.READ" />
In the report from Google, it says that I should edit it as exported = false, but it is impossible for me to send stickers this way.
How can I solve this problem without making exported = false?
Best wishes

How can I switch an existing Azure web-role from http over to https

I have a working Azure web role which I've been using over an http endpoint. I'm now trying to switch it over to https but struggling mightily with what I thought would be a simple operation. (I'll include a few tips here for future readers to address issues I've already come across).
I have created (for now) a self-signed certificate using the powershell commands documented by Microsoft here and uploaded it to the azure portal. I'm aware that 3rd parties won't be able to consume the API while it has a self-signed certificate but my plan is to use the following for local client testing before purchasing a 'proper' certificate.
ServicePointManager.ServerCertificateValidationCallback += (o, c, ch, er) => true;
Tip: you need upload the .pfx file and then supply the password you used in the powershell script. Don't be confused by suggestion to create a .cer file which is for completely different purposes.
I then followed the flow documented for configuring azure cloud services here although many of these operations are now done directly through visual studio rather than by hand-editing files.
In the main 'cloud service' project under the role I wanted to modify:
I imported the newly created certificate. Tip: the design of the dialog used to add the thumbprint makes it very easy to incorrectly select the developer certificate that is already installed on your machine (by visual studio?). Click 'more options' to get to _your_ certificate and then check the displayed thumbprint matches that shown in the Azure portal in the certificates section.
Under 'endpoints' I added a new https endpoint. Tip: use the standard https port 443, NOT the 'default' port of 8080 otherwise you will get no response from your service at all
In the web.config of the service itself, I changed the endpoint binding for the service so that the name element matched the new endpoint.
I then published the cloud project to Azure (using Visual Studio).
At this point, I'm not seeing the results I expected. The service is still available on http but is not available on https. When I try to browse for it on https (includeExceptionDetailInFaults is set to true) I get:
HTTP error 404 "The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable"
I interpret this as meaning that the https endpoint is available but the service itself is bound to http rather than https despite my changes to web.config.
I have verified that the publish step really is uploading the new configuration by modifying some of the returned content. (Remember this is still available on http.)
I have tried removing the 'obsolete' http endpoint but this just results in a different error:
"Could not find a base address that matches scheme http for the endpoint with binding WebHttpBinding. Registered base address schemes are [https]"
I'm sure I must be missing something simple here. Can anyone suggest what it is or tips for further trouble-shooting? There are a number of stack-overflow answers that relate to websites and suggest that IIS settings need to be tweaked but I don't see how this applies to a web-role where I don't have direct control of the server.
Edit Following Gaurav's suggestion I repeated the process using a (self-signed) certificate for our own domain rather than cloudapp.net then tried to access the service via this domain. I still see the same results; i.e. the service is available via http but not https.
Edit2 Information from csdef file... is the double reference to "Endpoint1" suspicious?
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="HttpsEndpoint" />
<Binding name="Endpoint1" endpointName="HttpEndpoint" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="HttpsEndpoint" protocol="https" port="443" certificate="backend" />
<InputEndpoint name="HttpEndpoint" protocol="http" port="80" />
</Endpoints>
<Certificates>
<Certificate name="backend" storeLocation="LocalMachine" storeName="My" />
</Certificates>

Xamarin FCM Topic Subscription

I'm developing an Android + iOS app using Xamarin Studio, I recently integrated the notification management system via Firebase, but I'm having some problems in the subscription of the topic, I'll explain to the Android app I've configured everything correctly, because if sending a notification to the segment of Android users through the dashboard Firebase app registers and receives properly, then I have added to MainActivity this line:
FirebaseMessaging.Instance.SubscribeToTopic ( "news");
within a "Task.Run (() =>" and before the call to the "LoadApplication" method of Forms
Then when I compile and start the application output is written: "[FirebaseInstanceId] topic sync succeeded"
But when I log in to the dashboard Firebase to make a message sending test in a topic, when I go to select the "Topics" is written: "This project has no arguments"
I wanted to ask if you could direct me on what may depend on what?
And how do you solve?
Maybe I need to include some other permission nell'AndroidManifest?
Or it must first ensure that even the iOS project subscribes the same topic Android?
Or maybe there are other things that I do and who currently do not know that you can tell me?
Thank you very much in advance.
For clarity and precision below carry the configuration for Firebase nell'AndroidManifest.xml I entered under the node "
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
android:exported="false" />
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
I also want to clarify that I have inserted in the project the "google-services.json" file by selecting as BuildOptions -> "GoogleServicesJson"
Instead, the version of the package Xamarin.Firebase.Messaging I'm using in the project is the "32.961.0"
Thanks again in advance to all
It may take a few hours (up to possibly a day) for the topic you recently subscribed a client to to show up in the Firebase Notifications Console.
What you could do for the meantime is to send the message to the topic either by using Postman or cURL

Trouble logging in with DotnetOpenAuth in asp.net 4.5 sample application

I am just trying to see how open auth works in asp.net 4.5 application.
I just created a new template and it has the deafult code for handling google.
I just un commented the comments as per instructions to enable it, but when i run the application and click on login, it is throwing an exception instead of redirecting to google login page
I have to cross the proxy to make the outbound requests. I guess it is what is blocking it to connect to google.
Is there any way to cross through proxy and make the request ? please suggest
If you are using a proxy then you will need to tell ASP.NET which proxy it should use - this is to do with .NET rather than DotNetOpenAuth. As mentioned by #IsThatSo have a look at Specifying a proxy to use with DotNetOpenID which details that you how you specify the proxy to use.
system.net>
<defaultProxy>
<proxy
usesystemdefault = "False"
proxyaddress="http://myproxyserver:8080"
bypassonlocal="True"
/>
<bypasslist>
<add address="[a-z]+\.mydomain\.com"/>
<add address="[a-z]+\.myotherdomain\.com"/>
</bypasslist>
</defaultProxy>
</system.net>

Resources