SlideShare a Scribd company logo
1 of 20
Deploying binaries to the bin folder Partially Trusted Code in SharePoint Corey Roth Stonebridge Twitter: @coreyroth Blog: www.dotnetmafia.com
Corey Roth Consultant for Stonebridge in Tulsa, OK Worked in Consumer Electronics, Travel, Advertising, and Energy industries Currently doing SharePoint development specializing in Enterprise Search Microsoft Solutions Advocate Microsoft Award for Customer Excellence (ACE) Winner E-mail: coreyroth@gmail.com Twitter: @coreyroth Blog: www.dotnetmafia.com
What is Partial Trust?
Why use Partial Trust? More Secure Allows deployment of assemblies to bin folder Deployment doesn’t require an Application Pool reset Doesn’t require giving every deployed DLL full trust
Demo
Implementing Partial Trust Add [Assembly: AllowParitallyTrustedCallers()] to AssemblyInfo.cs Set <trust Level=“Minimal” originUrl=“” /> in web.config Define Security Policy in Trust configuration file Security policy can be deployed via solution package (.wsp) using manifest.xml PowerShell: Install with Install-SPSolution and –CASPolicies parameter WSS3: Install with stsadm and –allowCasPolicies parameter
Visual Studio 2010 CAS policies configured in Package Editor manifest tab Still must configure permissions manually Set Assembly Deployment Target to WebApplication on project properties
Demo
How do I determine CAS policy? Google Reflector Exceptions DotNetMafia.com
<CodeAccessSecurity> Element in trust configuration file that defines which CAS Policies apply to each assembly <IPermission> element defines individual rights to resources such as ASP.NET, SharePoint, EventLog, Configuration, SQL Server, File I/O Can be copied to configuration file manually or deployed via solution package (wsp)
<IPermission> AspNetHostingPermission (Level=“Minimal”) – Required for ASP.NET Controls SharePointPermission (ObjectModel=“True”) – Required to use SharePoint API FileIOPermission  (Read, Write, PathDiscovery, Append) – Specifies files the code can access - $AppDir$ by default SqlClientPermission – Required to access SQL Server ReflectionPermission – Required for LINQ SecurityPermission – Required for most basic operations EnvironmentPermission – Provides access to environment variables
What the solution package does Backs up your web.config Changes the trust element to WSS_Custom in web.config Backs up trust configuration file – wss_minimaltrust.config becomes wss_custom_wss_minimaltrust.config Changes the path to the trust configuration file in the web.config <trustLevel> element Adds code access security settings from manifest.xml
Demo
Sandboxed Solutions Variation of Code Access Security but more restrictive Permissions configured in wss_UserCode.xml in the 14ONFIG folder Only allows use of ASP.NET controls and some of the SharePoint object model
Demo
What requires full trust? Event Receivers Visual Web Parts Timer Jobs PowerShell commandlets STSADM Commands
Questions?
Thank you sponsors!!
2 HP Netbook’s Also Tons of books 2 thinkgeekgiftcards for $100  Telerikrad controls set 2 licenses of essential user interface studio 1 webcast from critical path Microsoft Zune
Thanks Corey Roth E-mail: coreyroth@gmail.com Twitter: @coreyroth Blog: www.dotnetmafia.com

More Related Content

What's hot

TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!Karl Ots
 
Cloud Reference Architecture - Part 1 Foundation
Cloud Reference Architecture - Part 1 FoundationCloud Reference Architecture - Part 1 Foundation
Cloud Reference Architecture - Part 1 FoundationAmmar Hasayen
 
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUGAzure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUGRoy Kim
 
[Azure Governance] Lesson 3 : Azure Tags
[Azure Governance] Lesson 3 : Azure Tags[Azure Governance] Lesson 3 : Azure Tags
[Azure Governance] Lesson 3 : Azure Tags☁ Hicham KADIRI ☁
 
Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013
Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013
Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013Amazon Web Services
 
Stephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsStephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsMSDEVMTL
 
Introduction to basic governance in Azure - #GABDK
Introduction to basic governance in Azure - #GABDKIntroduction to basic governance in Azure - #GABDK
Introduction to basic governance in Azure - #GABDKPeter Selch Dahl
 
(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014
(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014
(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014Amazon Web Services
 
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...Roy Kim
 
Azure Compute, Networking and Storage Overview
Azure Compute, Networking and Storage OverviewAzure Compute, Networking and Storage Overview
Azure Compute, Networking and Storage OverviewAzure Riyadh User Group
 
Build HIPAA Eligible Solutions with AWS and APN Partners PPT
 Build HIPAA Eligible Solutions with AWS and APN Partners PPT Build HIPAA Eligible Solutions with AWS and APN Partners PPT
Build HIPAA Eligible Solutions with AWS and APN Partners PPTAmazon Web Services
 
Amazon Web Services Security
Amazon Web Services SecurityAmazon Web Services Security
Amazon Web Services SecurityJason Chan
 
Linux Administration Training | Linux Administration Will Never Go Out Of Fas...
Linux Administration Training | Linux Administration Will Never Go Out Of Fas...Linux Administration Training | Linux Administration Will Never Go Out Of Fas...
Linux Administration Training | Linux Administration Will Never Go Out Of Fas...Edureka!
 
Azure Active Directory - An Introduction
Azure Active Directory  - An IntroductionAzure Active Directory  - An Introduction
Azure Active Directory - An IntroductionVenkatesh Narayanan
 
Power of the Cloud - Introduction to Microsoft Azure Security
Power of the Cloud - Introduction to Microsoft Azure SecurityPower of the Cloud - Introduction to Microsoft Azure Security
Power of the Cloud - Introduction to Microsoft Azure SecurityAdin Ermie
 
TechDays Finland 2020: Best practices of securing web applications running on...
TechDays Finland 2020: Best practices of securing web applications running on...TechDays Finland 2020: Best practices of securing web applications running on...
TechDays Finland 2020: Best practices of securing web applications running on...Karl Ots
 
[Azure Governance] Lesson 2 : Azure Locks
[Azure Governance] Lesson 2 : Azure Locks[Azure Governance] Lesson 2 : Azure Locks
[Azure Governance] Lesson 2 : Azure Locks☁ Hicham KADIRI ☁
 
O365Con18 - Compliance Manager - Tomislav Lulic
O365Con18 - Compliance Manager - Tomislav LulicO365Con18 - Compliance Manager - Tomislav Lulic
O365Con18 - Compliance Manager - Tomislav LulicNCCOMMS
 
[Azure Governance] Lesson 1 : Azure Naming Convention
[Azure Governance] Lesson 1 : Azure Naming Convention[Azure Governance] Lesson 1 : Azure Naming Convention
[Azure Governance] Lesson 1 : Azure Naming Convention☁ Hicham KADIRI ☁
 

What's hot (20)

TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!TechDays Finland 2020: Azuren tietoturva haltuun!
TechDays Finland 2020: Azuren tietoturva haltuun!
 
Cloud Reference Architecture - Part 1 Foundation
Cloud Reference Architecture - Part 1 FoundationCloud Reference Architecture - Part 1 Foundation
Cloud Reference Architecture - Part 1 Foundation
 
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUGAzure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
 
[Azure Governance] Lesson 3 : Azure Tags
[Azure Governance] Lesson 3 : Azure Tags[Azure Governance] Lesson 3 : Azure Tags
[Azure Governance] Lesson 3 : Azure Tags
 
Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013
Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013
Implementing Bullet-Proof HIPAA Solutions on AWS (SEC306) | AWS re:Invent 2013
 
Stephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsStephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environments
 
Introduction to basic governance in Azure - #GABDK
Introduction to basic governance in Azure - #GABDKIntroduction to basic governance in Azure - #GABDK
Introduction to basic governance in Azure - #GABDK
 
(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014
(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014
(HLS401) Architecting for HIPAA Compliance on AWS | AWS re:Invent 2014
 
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
 
Azure Compute, Networking and Storage Overview
Azure Compute, Networking and Storage OverviewAzure Compute, Networking and Storage Overview
Azure Compute, Networking and Storage Overview
 
Build HIPAA Eligible Solutions with AWS and APN Partners PPT
 Build HIPAA Eligible Solutions with AWS and APN Partners PPT Build HIPAA Eligible Solutions with AWS and APN Partners PPT
Build HIPAA Eligible Solutions with AWS and APN Partners PPT
 
Amazon Web Services Security
Amazon Web Services SecurityAmazon Web Services Security
Amazon Web Services Security
 
Linux Administration Training | Linux Administration Will Never Go Out Of Fas...
Linux Administration Training | Linux Administration Will Never Go Out Of Fas...Linux Administration Training | Linux Administration Will Never Go Out Of Fas...
Linux Administration Training | Linux Administration Will Never Go Out Of Fas...
 
Azure Active Directory - An Introduction
Azure Active Directory  - An IntroductionAzure Active Directory  - An Introduction
Azure Active Directory - An Introduction
 
Azure hands on lab
Azure hands on labAzure hands on lab
Azure hands on lab
 
Power of the Cloud - Introduction to Microsoft Azure Security
Power of the Cloud - Introduction to Microsoft Azure SecurityPower of the Cloud - Introduction to Microsoft Azure Security
Power of the Cloud - Introduction to Microsoft Azure Security
 
TechDays Finland 2020: Best practices of securing web applications running on...
TechDays Finland 2020: Best practices of securing web applications running on...TechDays Finland 2020: Best practices of securing web applications running on...
TechDays Finland 2020: Best practices of securing web applications running on...
 
[Azure Governance] Lesson 2 : Azure Locks
[Azure Governance] Lesson 2 : Azure Locks[Azure Governance] Lesson 2 : Azure Locks
[Azure Governance] Lesson 2 : Azure Locks
 
O365Con18 - Compliance Manager - Tomislav Lulic
O365Con18 - Compliance Manager - Tomislav LulicO365Con18 - Compliance Manager - Tomislav Lulic
O365Con18 - Compliance Manager - Tomislav Lulic
 
[Azure Governance] Lesson 1 : Azure Naming Convention
[Azure Governance] Lesson 1 : Azure Naming Convention[Azure Governance] Lesson 1 : Azure Naming Convention
[Azure Governance] Lesson 1 : Azure Naming Convention
 

Similar to Deploy binaries to bin folder with partial trust in SharePoint

Implementing Partial Trust In Share Point
Implementing Partial Trust In Share PointImplementing Partial Trust In Share Point
Implementing Partial Trust In Share PointCorey Roth
 
Creating Secure Applications
Creating Secure Applications Creating Secure Applications
Creating Secure Applications guest879f38
 
Getting Started with Enterprise Library 3.0 in ASP.NET
Getting Started with Enterprise Library 3.0 in ASP.NETGetting Started with Enterprise Library 3.0 in ASP.NET
Getting Started with Enterprise Library 3.0 in ASP.NETPhilWinstanley
 
HTTP_Header_Security.pdf
HTTP_Header_Security.pdfHTTP_Header_Security.pdf
HTTP_Header_Security.pdfksudhakarreddy5
 
SharePoint Development For Asp Net Developers
SharePoint Development For Asp Net DevelopersSharePoint Development For Asp Net Developers
SharePoint Development For Asp Net DevelopersCorey Roth
 
Implementing application security using the .net framework
Implementing application security using the .net frameworkImplementing application security using the .net framework
Implementing application security using the .net frameworkLalit Kale
 
Configuring kerberos based sso in weblogic
Configuring kerberos based sso in weblogicConfiguring kerberos based sso in weblogic
Configuring kerberos based sso in weblogicHarihara sarma
 
Microsoft_SC-100_April_2023-v1.3.pdf
Microsoft_SC-100_April_2023-v1.3.pdfMicrosoft_SC-100_April_2023-v1.3.pdf
Microsoft_SC-100_April_2023-v1.3.pdfCCIEHOMER
 
Moodle andoffice365withadfs
Moodle andoffice365withadfsMoodle andoffice365withadfs
Moodle andoffice365withadfsHeo Gòm
 
Gaurav security profile_5_years_experience
Gaurav security profile_5_years_experienceGaurav security profile_5_years_experience
Gaurav security profile_5_years_experiencegaurav sharma
 
Exam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure SolutionsExam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure SolutionsGustavo Zimmermann (MVP)
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...Nik Patel
 
Actor Model Import Connector for Microsoft Active Directory
Actor Model Import Connector for Microsoft Active DirectoryActor Model Import Connector for Microsoft Active Directory
Actor Model Import Connector for Microsoft Active Directoryprotect724rkeer
 
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...Michael Noel
 
Connecting SharePoint 2010 Service Applications with other Farms
Connecting SharePoint 2010 Service Applications with other FarmsConnecting SharePoint 2010 Service Applications with other Farms
Connecting SharePoint 2010 Service Applications with other Farmspearce.alex
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Danny Jessee
 
Oracle_1Z0-1072-22_March_2023-v1.1.pdf
Oracle_1Z0-1072-22_March_2023-v1.1.pdfOracle_1Z0-1072-22_March_2023-v1.1.pdf
Oracle_1Z0-1072-22_March_2023-v1.1.pdfCCIEHOMER
 
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureLow Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureMongoDB
 
CI and CD with Spinnaker
CI and CD with SpinnakerCI and CD with Spinnaker
CI and CD with SpinnakerVMware Tanzu
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudDanny Jessee
 

Similar to Deploy binaries to bin folder with partial trust in SharePoint (20)

Implementing Partial Trust In Share Point
Implementing Partial Trust In Share PointImplementing Partial Trust In Share Point
Implementing Partial Trust In Share Point
 
Creating Secure Applications
Creating Secure Applications Creating Secure Applications
Creating Secure Applications
 
Getting Started with Enterprise Library 3.0 in ASP.NET
Getting Started with Enterprise Library 3.0 in ASP.NETGetting Started with Enterprise Library 3.0 in ASP.NET
Getting Started with Enterprise Library 3.0 in ASP.NET
 
HTTP_Header_Security.pdf
HTTP_Header_Security.pdfHTTP_Header_Security.pdf
HTTP_Header_Security.pdf
 
SharePoint Development For Asp Net Developers
SharePoint Development For Asp Net DevelopersSharePoint Development For Asp Net Developers
SharePoint Development For Asp Net Developers
 
Implementing application security using the .net framework
Implementing application security using the .net frameworkImplementing application security using the .net framework
Implementing application security using the .net framework
 
Configuring kerberos based sso in weblogic
Configuring kerberos based sso in weblogicConfiguring kerberos based sso in weblogic
Configuring kerberos based sso in weblogic
 
Microsoft_SC-100_April_2023-v1.3.pdf
Microsoft_SC-100_April_2023-v1.3.pdfMicrosoft_SC-100_April_2023-v1.3.pdf
Microsoft_SC-100_April_2023-v1.3.pdf
 
Moodle andoffice365withadfs
Moodle andoffice365withadfsMoodle andoffice365withadfs
Moodle andoffice365withadfs
 
Gaurav security profile_5_years_experience
Gaurav security profile_5_years_experienceGaurav security profile_5_years_experience
Gaurav security profile_5_years_experience
 
Exam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure SolutionsExam Overview 70-533 Implementing Azure Infrastructure Solutions
Exam Overview 70-533 Implementing Azure Infrastructure Solutions
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
 
Actor Model Import Connector for Microsoft Active Directory
Actor Model Import Connector for Microsoft Active DirectoryActor Model Import Connector for Microsoft Active Directory
Actor Model Import Connector for Microsoft Active Directory
 
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
TechEd Africa 2011 - OFC308: SharePoint Security in an Insecure World: Unders...
 
Connecting SharePoint 2010 Service Applications with other Farms
Connecting SharePoint 2010 Service Applications with other FarmsConnecting SharePoint 2010 Service Applications with other Farms
Connecting SharePoint 2010 Service Applications with other Farms
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010
 
Oracle_1Z0-1072-22_March_2023-v1.1.pdf
Oracle_1Z0-1072-22_March_2023-v1.1.pdfOracle_1Z0-1072-22_March_2023-v1.1.pdf
Oracle_1Z0-1072-22_March_2023-v1.1.pdf
 
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureLow Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
 
CI and CD with Spinnaker
CI and CD with SpinnakerCI and CD with Spinnaker
CI and CD with Spinnaker
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 

More from Corey Roth

Introduction to Microsoft Teams and Office 365 Groups
Introduction to Microsoft Teams and Office 365 GroupsIntroduction to Microsoft Teams and Office 365 Groups
Introduction to Microsoft Teams and Office 365 GroupsCorey Roth
 
Compliance and eDiscovery with Office 365
Compliance and eDiscovery with Office 365 Compliance and eDiscovery with Office 365
Compliance and eDiscovery with Office 365 Corey Roth
 
Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013
Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013
Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013Corey Roth
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Corey Roth
 
Configuring SharePoint Search for an Optimal Document Management Experience
Configuring SharePoint Search for an Optimal Document Management ExperienceConfiguring SharePoint Search for an Optimal Document Management Experience
Configuring SharePoint Search for an Optimal Document Management ExperienceCorey Roth
 
Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013
Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013
Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013Corey Roth
 
Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...
Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...
Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...Corey Roth
 
What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...
What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...
What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...Corey Roth
 
Office 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and LearnOffice 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and LearnCorey Roth
 
New SharePoint development features using Visual Studio 2012 - SharePoint Sat...
New SharePoint development features using Visual Studio 2012 - SharePoint Sat...New SharePoint development features using Visual Studio 2012 - SharePoint Sat...
New SharePoint development features using Visual Studio 2012 - SharePoint Sat...Corey Roth
 
Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...
Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...
Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...Corey Roth
 
Making the Most of Search in SharePoint Online - TechEd North America
Making the Most of Search in SharePoint Online - TechEd North AmericaMaking the Most of Search in SharePoint Online - TechEd North America
Making the Most of Search in SharePoint Online - TechEd North AmericaCorey Roth
 
New SharePoint development features using Visual Studio 11 - San Antonio Shar...
New SharePoint development features using Visual Studio 11 - San Antonio Shar...New SharePoint development features using Visual Studio 11 - San Antonio Shar...
New SharePoint development features using Visual Studio 11 - San Antonio Shar...Corey Roth
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...
Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...
Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...Corey Roth
 
Extending SharePoint 2010 to your customers and partners
Extending SharePoint 2010 to your customers and partnersExtending SharePoint 2010 to your customers and partners
Extending SharePoint 2010 to your customers and partnersCorey Roth
 
Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...
Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...
Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...Corey Roth
 
Instant ECM with SharePoint 2010 - SPTechCon Boston 2011
Instant ECM with SharePoint 2010 - SPTechCon Boston 2011Instant ECM with SharePoint 2010 - SPTechCon Boston 2011
Instant ECM with SharePoint 2010 - SPTechCon Boston 2011Corey Roth
 
SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...
SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...
SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...Corey Roth
 
Getting the most ouf of SharePoint Search - Tulsa SharePoint Interest Group
Getting the most ouf of SharePoint Search - Tulsa SharePoint Interest GroupGetting the most ouf of SharePoint Search - Tulsa SharePoint Interest Group
Getting the most ouf of SharePoint Search - Tulsa SharePoint Interest GroupCorey Roth
 
Instant ECM with SharePoint 2010
Instant ECM with SharePoint 2010Instant ECM with SharePoint 2010
Instant ECM with SharePoint 2010Corey Roth
 

More from Corey Roth (20)

Introduction to Microsoft Teams and Office 365 Groups
Introduction to Microsoft Teams and Office 365 GroupsIntroduction to Microsoft Teams and Office 365 Groups
Introduction to Microsoft Teams and Office 365 Groups
 
Compliance and eDiscovery with Office 365
Compliance and eDiscovery with Office 365 Compliance and eDiscovery with Office 365
Compliance and eDiscovery with Office 365
 
Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013
Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013
Surfacing Your External Data using BCS in SharePoint 2013 - Dev Connections 2013
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
 
Configuring SharePoint Search for an Optimal Document Management Experience
Configuring SharePoint Search for an Optimal Document Management ExperienceConfiguring SharePoint Search for an Optimal Document Management Experience
Configuring SharePoint Search for an Optimal Document Management Experience
 
Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013
Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013
Fives ways to query SharePoint 2013 Search - SharePoint Summit Toronto 2013
 
Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...
Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...
Publishing SharePoint 2013 Apps to the Office Store - Austin SharePoint Users...
 
What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...
What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...
What you need to know about Search in SharePoint 2013 Preview - DFW SharePoin...
 
Office 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and LearnOffice 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and Learn
 
New SharePoint development features using Visual Studio 2012 - SharePoint Sat...
New SharePoint development features using Visual Studio 2012 - SharePoint Sat...New SharePoint development features using Visual Studio 2012 - SharePoint Sat...
New SharePoint development features using Visual Studio 2012 - SharePoint Sat...
 
Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...
Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...
Pitching Office 365 to your Energy Customers - Microsoft Worldwide Partner Co...
 
Making the Most of Search in SharePoint Online - TechEd North America
Making the Most of Search in SharePoint Online - TechEd North AmericaMaking the Most of Search in SharePoint Online - TechEd North America
Making the Most of Search in SharePoint Online - TechEd North America
 
New SharePoint development features using Visual Studio 11 - San Antonio Shar...
New SharePoint development features using Visual Studio 11 - San Antonio Shar...New SharePoint development features using Visual Studio 11 - San Antonio Shar...
New SharePoint development features using Visual Studio 11 - San Antonio Shar...
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...
Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...
Office 365 - Introduction to SharePoint Online Development - SharePoint Satur...
 
Extending SharePoint 2010 to your customers and partners
Extending SharePoint 2010 to your customers and partnersExtending SharePoint 2010 to your customers and partners
Extending SharePoint 2010 to your customers and partners
 
Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...
Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...
Advanced BCS - Business Data Connectivity Models and Custom Connectors - SPTe...
 
Instant ECM with SharePoint 2010 - SPTechCon Boston 2011
Instant ECM with SharePoint 2010 - SPTechCon Boston 2011Instant ECM with SharePoint 2010 - SPTechCon Boston 2011
Instant ECM with SharePoint 2010 - SPTechCon Boston 2011
 
SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...
SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...
SharePoint 2010 Development for ASP.NET Developers - SharePoint Saturday Hous...
 
Getting the most ouf of SharePoint Search - Tulsa SharePoint Interest Group
Getting the most ouf of SharePoint Search - Tulsa SharePoint Interest GroupGetting the most ouf of SharePoint Search - Tulsa SharePoint Interest Group
Getting the most ouf of SharePoint Search - Tulsa SharePoint Interest Group
 
Instant ECM with SharePoint 2010
Instant ECM with SharePoint 2010Instant ECM with SharePoint 2010
Instant ECM with SharePoint 2010
 

Recently uploaded

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Recently uploaded (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

Deploy binaries to bin folder with partial trust in SharePoint

  • 1. Deploying binaries to the bin folder Partially Trusted Code in SharePoint Corey Roth Stonebridge Twitter: @coreyroth Blog: www.dotnetmafia.com
  • 2. Corey Roth Consultant for Stonebridge in Tulsa, OK Worked in Consumer Electronics, Travel, Advertising, and Energy industries Currently doing SharePoint development specializing in Enterprise Search Microsoft Solutions Advocate Microsoft Award for Customer Excellence (ACE) Winner E-mail: coreyroth@gmail.com Twitter: @coreyroth Blog: www.dotnetmafia.com
  • 4. Why use Partial Trust? More Secure Allows deployment of assemblies to bin folder Deployment doesn’t require an Application Pool reset Doesn’t require giving every deployed DLL full trust
  • 6. Implementing Partial Trust Add [Assembly: AllowParitallyTrustedCallers()] to AssemblyInfo.cs Set <trust Level=“Minimal” originUrl=“” /> in web.config Define Security Policy in Trust configuration file Security policy can be deployed via solution package (.wsp) using manifest.xml PowerShell: Install with Install-SPSolution and –CASPolicies parameter WSS3: Install with stsadm and –allowCasPolicies parameter
  • 7. Visual Studio 2010 CAS policies configured in Package Editor manifest tab Still must configure permissions manually Set Assembly Deployment Target to WebApplication on project properties
  • 9. How do I determine CAS policy? Google Reflector Exceptions DotNetMafia.com
  • 10. <CodeAccessSecurity> Element in trust configuration file that defines which CAS Policies apply to each assembly <IPermission> element defines individual rights to resources such as ASP.NET, SharePoint, EventLog, Configuration, SQL Server, File I/O Can be copied to configuration file manually or deployed via solution package (wsp)
  • 11. <IPermission> AspNetHostingPermission (Level=“Minimal”) – Required for ASP.NET Controls SharePointPermission (ObjectModel=“True”) – Required to use SharePoint API FileIOPermission (Read, Write, PathDiscovery, Append) – Specifies files the code can access - $AppDir$ by default SqlClientPermission – Required to access SQL Server ReflectionPermission – Required for LINQ SecurityPermission – Required for most basic operations EnvironmentPermission – Provides access to environment variables
  • 12. What the solution package does Backs up your web.config Changes the trust element to WSS_Custom in web.config Backs up trust configuration file – wss_minimaltrust.config becomes wss_custom_wss_minimaltrust.config Changes the path to the trust configuration file in the web.config <trustLevel> element Adds code access security settings from manifest.xml
  • 13. Demo
  • 14. Sandboxed Solutions Variation of Code Access Security but more restrictive Permissions configured in wss_UserCode.xml in the 14ONFIG folder Only allows use of ASP.NET controls and some of the SharePoint object model
  • 15. Demo
  • 16. What requires full trust? Event Receivers Visual Web Parts Timer Jobs PowerShell commandlets STSADM Commands
  • 19. 2 HP Netbook’s Also Tons of books 2 thinkgeekgiftcards for $100 Telerikrad controls set 2 licenses of essential user interface studio 1 webcast from critical path Microsoft Zune
  • 20. Thanks Corey Roth E-mail: coreyroth@gmail.com Twitter: @coreyroth Blog: www.dotnetmafia.com

Editor's Notes

  1. Partial trust vs. Full Trust
  2. Demo code of web part.
  3. Demo CAS by adding APTCA attribute and Manifest.xml configuration.
  4. SecurityPermission class controlled by SecurityPermissionFlagenum.EnvironmentPermission - EnvironmentPermissionAccess (NoAccess, Read, Write, AllAccess)SqlClientPermission - DBDataPermissionAttribute (AllowBlankPassword, ConnectionString)FileIOPermission - FileIOPermissionAttribute (Read, Write, PathDiscovery, Append)EventLogPermission - EventLogPermissionAttribute (MachineName, Unrestricted)ConfigurationPermission - Unrestricted OnlyReflectionPermission - Needed for LINQAspNetHostingPermission - Needed for ControlsSharePointPermission - ObjectModel = True (Unrestricted = true) sometimes
  5. Show web.config and partial trust config files.
  6. Demo sandboxed solutions.