Unable to see custom entity in Plugin Registration tool - dynamics-crm

I registered a plugin assembly using the SDK Plugin registration tool. I am trying to add a step but cant see any of my custom entities in the Primary Entity field. Am I missing something here? It is a trial instance of CRM Online and I am logging into the default organization.

Entities are only loaded once, and then cached by the Plugin registration tool. Make sure you publish your changes in CRM, then completely shut down and restart the Plugin Registration tool.

Related

ASP NET Boilerplate API project creation problem

It is a first time that I am using ASP.NET Boilerplate for API development. There are default features like multi tenancy and role management which I don’t want to use in the template. When creating a new project. in the project wizard I am choosing “Single Page Web Application” and I am unchecking the “Include login, register, user, role and tenant management pages” box. But when I do this, it is removing the connection between Swagger and Application Service. So the methods I am writing in Application Service are not being translated as API endpoints automatically.
Ideally, I want this: ABP Template + Empty API solution + swagger connection.
Am I missing something? Could you point me in the right direction? Thanks in advance.
"The methods that I am writing in the Application Service are not automatically translated as API endpoints." Regarding that, the app service should be translated automatically in the version that does not include login and roles, check the documentation. Regarding the swagger, you have to add it manually.

Can I register a plug-in on the user login event in Dynamics CRM?

I want to register a plug-in in Plugin Registration Tool when a user logs in to Dynamics CRM. For this I don't want to use Audit. I want to catch the login event directly.
If this is not possible, is there any log that is create in every login of the user.
As far as I know, No you cannot do so.
But CRM has provided few different ways where you can check which users are currently working/logged in.
Go to Settings--> System Settings--> Auditing and then you can enable audit user access.
Above will enable for all users and then you can see audit data as below.
Ref for 1st option https://blogs.msdn.microsoft.com/emeadcrmsupport/2015/07/09/dynamics-crm-audit-user-access-data/
Now another way you can do so it visit url https://admin.powerplatform.microsoft.com/
Here go under analytics and then common data service. You wil get most of the info
High level design of what I would do:
Make/identify a default dashboard for all users and keep a HTML web resource in there
Web resource can have a method to invoke Xrm.WebApi.online.execute for executing a Custom Action by passing parameter to include IP, Lat, Lon, Browser details. Read more
Register a plugin on Custom Action message to trigger and achieve what you want there

Authenticating dynamics CRM plugin to access Web API 2 methods

I have written a plugin in dynamics CRM. This plugin accesses a few Web API 2 methods that are deployed in Azure cloud (via HTTPS). The plug-in is triggered when a contact data in the CRM changes. Many CRM account holders will update the contact data.
I am going to hard code a 'secret key' (a one time generated Guid) in the plug-in and send this key every time I access the web api methods. I'll validate this guid in the web api methods to prevent un-authorized access.
I do not like to store the secret key (guid) in the source code.
Questions
What are my alternatives if do not want to 'hard code' the secret key?
What are the security flaws in this approach?
Note
In general, all my Web APIs are authenticated by a custom authentication web api filter, but the Web APIs that are accessed from the plugin are not part of the custom authentication.
CRM version is 2013
As the previous answers states, the first option is to store your information in a configuration custom entity that you can retrieve from your plugin. Those records are going to be protected by the CRM security model, so if your plugin is running in the calling user context you will need to make sure that the users have privileges to read that information (not really a good idea) or change the plugin to be executed under an admin user context.
Another option is to use Secure/Unsecure Configuration:
Those are two (string) parameters that you can configure within the step and you will be able to read them from the plugin. I would say that the secure configuration fits your requirement but give it a look. You can also easily find how to implement it (example).
The third and last option that I can think of, is to create an XML WebResource and read it from the plugin. Again, you will need to make sure that the user context under the plugin is running has access to it.
I don't think this approach will ever be secure.
It's possible to extract the plugin assembly from CRM. Someone could then disassemble the assembly and find the Guid. Effectively your password is stored in plain text.
At the very least you could store the user name/password/secret key in a CRM record. The CRM record can then be protected with CRM security.
You are probably better off implementing the authentication 'normally'.

TelerikProfileProvider with custom Membership Provider

I've setup two membership providers: my custom provider and the Sitefinity provider. My custom membership provider is set as the default.
I want to use Sitefinity's Profile provider for both sets of users. However, the profile provider only seems to work for the users that I pull out of the Sitefinity membership provider.
After poking around with Reflector a bit, it seems that the Telerik Profile Provider assumes that the username exists in its own DB.
User userByName = this.Application.GetUserByName(userName);
if (userByName != null)
{
// magic happens here...
}
All the magic only happens if it was able to retrieve the user locally. Seems to violate the principles of the providers. Shouldn't I be able to arbitrarily add properties to any user regardless of the membership provider?
(I've also posted this on the Sitefinity forum, but haven't got a response yet. SO has spoiled me. I've come to expect an answer in minutes, not days.)
If I understand you correctly you want to use the sitefininty provider as a base and attach some additional information to the users profiles.
In general I would advise against trying to mingle with internal sitefininty management. Instead try to attach whatever functionality you want to execute to the standard provider.
What I have done in these situations in the past was creating a Membership Provider Wrapper (In your case a ProfileProviderWrapper) that holds an internal reference to another profile provider, while being a Profile provider itself.
This way you can execute any code you want before/after calling back to the actual underlying provider (or maybe your not calling back at all).
For example: Before returning the profile you could attach additional properties to it.
This way you don't break the sitefinity behavior, while still being able to interfere.

register new users in openfire?

Is there anyway to register new users through an HTTP request in OpenFire. I want users to be able to sign up for my messaging service from within an app written in cocoa. Can this be done??
Take a look at the web administration console's create-a-user page (http://<openfire-server>:<port>/user-create.php). It uses a simple HTTP GET form to create a new user. I imagine you could pull the submit URL and various required fields from the source of that page and build your own GET request from your Cocoa app.
The easiest way to register a new user in Openfire is the UserService plugin. Just take a look at http://www.igniterealtime.org/projects/openfire/plugins/userservice/readme.html
you can use the available user service plugin which is available in openfire admin console, choose the plugin tab, choose available plugin and click the green + button to install user service plugin; second, go to the server tab ->server setting page, and make sure you enable the user service plugin
hope this can help the others~~~~~~~~~~
You can use rest API plugin in openfire
Go to plugin then go to available plugin then add rest API plugin then go to help page or
https://www.igniterealtime.org/projects/openfire/plugins/restapi/readme.html
You'll get all the rest API to perform operation in openfire
You can use in-band registration as specified in XEP-77 to add accounts from the XMPP connection you're going to need.
lookup about http-bind in your openfire server
http://localhost:9090/http-bind.jsp
I use strope js client lib work with my rails web project well, so I guess you can also use your own xmpp lib to realize it in your cocoa project

Resources