Book Image

Microsoft Dynamics 365 Extensions Cookbook

Book Image

Microsoft Dynamics 365 Extensions Cookbook

Overview of this book

Microsoft Dynamics 365 is a powerful tool. It has many unique features that empower organisations to bridge common business challenges and technology pitfalls that would usually hinder the adoption of a CRM solution. This book sets out to enable you to harness the power of Dynamics 365 and cater to your unique circumstances. We start this book with a no-code configuration chapter and explain the schema, fields, and forms modeling techniques. We then move on to server-side and client-side custom code extensions. Next, you will see how best to integrate Dynamics 365 in a DevOps pipeline to package and deploy your extensions to the various SDLC environments. This book also covers modern libraries and integration patterns that can be used with Dynamics 365 (Angular, 3 tiers, and many others). Finally, we end by highlighting some of the powerful extensions available. Throughout we explain a range of design patterns and techniques that can be used to enhance your code quality; the aim is that you will learn to write enterprise-scale quality code.
Table of Contents (19 chapters)
Title Page
Credits
Foreword
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Impersonate another user when running your plugin


Often, when running a plugin, you would want to execute a server-side transaction that might require additional privileges that the current logged in user does not have. For example, when a plugin passes or fails, you want to record the outcome of your process in a custom entity. Normal users would typically have limited-to-no access to such entities to avoid tampering. In such a scenario, even though the plugin is running in the context of a user, you would want that user to temporarily run as a different user with the correct privileges.

There are two ways to impersonate within plugins: you can either do it in your plugin code or when registering your plugin. In this recipe, we will cover the in-code example.

Getting ready

You will need a plugin already created, such as the one in the previous recipe. When running the code, the users must have the Act On Behalf Of Another User privilege (under Business Management | Miscellaneous Privileges...