Bonjour,
j'ai crée un webpart personnalisé avec laquel je me connecte a une base de données pour en extraire qualques infos et les mettre dans un datagrid pour les afficher sur le site sharepoint.
je deploie mon webpart dans le GAC et ca passe trés bien mais quand je veux utiliser le webpart je recoie le message d'erreur suivant :
Échec de la demande d'autorisation de type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Voici mon code source :
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
using System.Data;
using System.Data.SqlClient;
namespace DataBaseConnWebPart
{
[Guid("9b7dac5e-5276-481e-ba6c-08016484a01d")]
public class DBConnWebPart : System.Web.UI.WebControls.WebParts.WebPart
{
DataGrid grid;
Label messages;
public DBConnWebPart()
{
}
protected override void CreateChildControls()
{
//Add grid
grid = new DataGrid();
grid.AutoGenerateColumns = false;
grid.Width = Unit.Percentage(100);
grid.GridLines = GridLines.Horizontal;
grid.CellPadding = 2;
//Add Grid columns
BoundColumn column = new BoundColumn();
column.DataField = "_id_filière";
column.HeaderText = "_id_filière";
grid.Columns.Add(column);
column = new BoundColumn();
column.DataField = "Dénomination";
column.HeaderText = "Dénomination";
grid.Columns.Add(column);
//Adding the Grid to Controls
Controls.Add(grid);
//Add label
messages = new Label();
Controls.Add(messages);
}
protected override void RenderContents(HtmlTextWriter writer)
{
// Declaring a dataset
DataSet dataSet = null;
// SQL Query
string sql = "select _id_filière, Dénomination from dbo.Filière";
//Defining the connection SQL connection string
SqlConnection sqlcon = new SqlConnection("Data Source=AMRMOSS;Initial Catalog=E-CPGE");
// Pulling the data using try catch block
try
{
sqlcon.Open();
SqlDataAdapter adapter = new SqlDataAdapter(sql, sqlcon);
dataSet = new DataSet("root");
adapter.Fill(dataSet, "Filière");
}
catch (SqlException x)
{
messages.Text = x.Message;
}
catch (Exception x)
{
messages.Text += x.Message;
}
//Bind data
try
{
grid.DataSource = dataSet;
grid.DataMember = "Filière";
grid.DataBind();
}
catch (Exception x)
{
messages.Text += x.Message;
}
//Display data
writer.Write("<table border=\"0\" width=\"100%\">");
writer.Write("<tr><td>");
grid.RenderControl(writer);
writer.Write("</td></tr>");
writer.Write("<tr><td>");
messages.RenderControl(writer);
writer.Write("</td></tr>");
writer.Write("</table>");
}
}
}
Je pense que c'est un problème d'authorisation mais dans quel niveau je sais pas.
si quelqu'un a une idée sur ça!
merci.
Partager