20
Jan
2009
0

Single Sign On with subdomains

Let’s say you want to authenticate on sub.domain.com a user previously logged on domain.com with ASP.NET 2.0 Forms authentication.

All you have to do is in the web.config file of the domain.com website add the attribute “domain” in the Forms tag, like this :

<forms … domain=”.domain.com” />

Ecrit par julien dans : .NET | Tags : , ,
19
Dec
2008
4

Rendre SIPS un peu plus sexy en .NET

SIPS d’ATOS est la principale solution de paiement en France, proposée sous leur propre marque par de nombreuses banques (WebAffaires, E-Transactions, Sherlock, etc…).

Elle est toutefois ancienne et n’a pas évolué avec la demande pourtant toujours croissante des utilisateurs pour plus de convivialité. Notamment, elle nécessite l’affichage de plusieurs pages, là où l’on sait que chaque nouvelle page, chaque seconde perdue est un risque supplémentaire que l’utilisateur quitte le site sans passer à l’acte.

Nous avons donc essayé de nous affranchir pour le moins de la première page, celle du choix du moyen de paiement, ou tout du moins de l’intégrer mieux dans le processus d’achat via un affichage en Ajax (et donc un chargement de page en moins). Mais faire cela en .NET n’a pas été un chemin sans écueil.

Le résultat obtenu ressemblera à cela :

image

(Lire la suite…)

Ecrit par julien dans : .NET | Tags :
18
Dec
2008
0

Respecter la norme W3C avec ASP.net

Les pages .aspx générées par IIS ne respectent pas totalement la norme W3C.

Ce billet vous permettra d’obtenir une page aspx entièrement validée par le validateur W3C

Tout d’abord, je conseille fortement d’installer l’extension Firefox HTML Validator:

Ensuite, il faut définir le DTD (DocType qui définit les règles à respecter), les plus courament utilisés sont :
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
ou
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

Étant donné que ASP.net génère systématiquement un attribut “name” à la balise “form” (rumat=’server’) et que le DTD XHTML Strict ne reconnaît pas cet attribut pour les balises “form”,
il est donc préférable de choisir le DTD Transitional qui est moins restrictif.

De plus, ASP.net génère des noms de variables javascript commançant par “__” (double underscore) alors que tous les noms de variables déclarées doivent commencer par une lettre.
Par conséquent, des avertissements sont générés par HTML Validator:

Une des solutions est de créer une classe PageBase dans le but de faire hériter toutes vos autres pages:
public class PageBase : Page
{
protected override void Render(HtmlTextWriter writer)
{
System.IO.StringWriter stringWriter = new System.IO.StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringWriter.ToString();
html = html.Replace(”id=\”__EVENTTARGET\”", “id=\”EVENTTARGET\”");
html = html.Replace(”id=\”__EVENTARGUMENT\”", “id=\”EVENTARGUMENT\”");
html = html.Replace(”id=\”__LASTFOCUS\”", “id=\”LASTFOCUS\”");
html = html.Replace(”id=\”__VIEWSTATE\”", “id=\”VIEWSTATE\”");
writer.Write(html);
}
}

Après quelques ajustements de votre code HTML que vous pourrez faire en suivant les indications de HTML Validator, vous allez pouvoir valider votre page sur le site http://validator.w3.org/ et obtenir le picto

Ecrit par florent dans : .NET |
10
Dec
2008
0

First look on Oxite (next part)

(This is the next part of this post, but in English because it may be interesting even for people who do not speak french)

2 - Administration Tab “tour”

Ok, hidden in the issue tracker page of the site, I finally manage to get the default admin password : it is “pa$$w0rd” (without the quotes).
Once logged in as administrator, two links appear in the right sidebar : Create Post and Create Page

image

So Oxite has a Page system. Pretty cool if you wish to use it as a CMS.

The new post page looks like this :

image

I could find a way to edit page but no way to edit a post … strange. Moreover, there is no wysiwyg editor at this time.
In the “About” page, the authors make it clear : this is just a sample program and not (yet ?) a real-life solution. For instance, to edit and post blogs, they use Windows Live Writer.

I hope this project will go forward and provide a fair alternative to platforms like wordpress, in the ASP.NET world. I will keep an eye on it and will post again here if I see more interesting things.

Ecrit par julien dans : .NET | Tags :
10
Dec
2008
2

Premier regard sur Oxite

Microsoft a annoncé hier la sortie de Oxite, leur plate-forme open-source de blogging. Blog & open-source, vous pensez immédiatement à Wordpress (ou DotClear), des frameworks open-source en php.

Pour Phoceis, c’est une grosse nouvelle puisque nous utilisions jusqu’à présent Wordpress pour nos clients, dans le cadre de la réalisation de blogs ou de sites relativement simples. Vue notre expertise en .NET, l’arrivée d’Oxite pourrait peut-être changer la donne, à condition que ce dernier tienne la comparaison avec Wordpress. Je précise juste qu’Oxite est en version alpha, il faudra donc être indulgent et espérer qu’il saura fédérer une communauté de développeurs lui permettant d’atteindre le niveau de ses grands frères.

Dans la suite de ce billet, première prise en main, et premières impressions, sans filet.

1. Téléchargement et ouverture du code source

Le code source se télécharge depuis cette page. Un code d’un peu plus d’un méga qui une fois dézippé se présente sous la forme d’un projet Visual Studio, doublé d’une version Visual Web Developper Express : une bonne idée pour que les développeurs ne possédant pas une licence Visual Studio puissent tout de même partcipier au projet avec cette version gratuite de l’outil. L’installation du framework MVC de Microsoft est également nécessaire (lien).

Une fois ouvert le projet se présente comme cela :

image

Note : L’ouverture du projet avec Visual Studio Professional entraîne une erreur puisque ce dernier le gère pas les fichiers dbproj.

Le projet compile correctement et la page d’accueil s’affiche correctement :

image

Et aprés … pour l’instant le néant car je n’ai pour l’instant pas trouvé le moyen d’accéder à l’admin … une version alpha de chez alpha donc … Dès que j’arrive à aller plus loin, je posterai un nouveau billet

Ecrit par julien dans : .NET | Tags :
05
Dec
2008
0

Module URL Rewrite pour IIS7

Pendant la migration d’un site de II6 vers IIS7, je me suis aperçu que le module UrlRewritingNet ne fonctionnait plus correctement.

Heureusement, Microsoft a développé un module “URL rewrite” pour IIS7 (à télécharger ici) qui permet de générer des règles de réécriture simplement.

Il est également possible de tester les patterns directement.

Si vous utilisez de l’ajax dans vos pages, n’oublier pas de cocher la case “Stop processing of subsequent rules”

Ecrit par florent dans : .NET |
05
Dec
2008
0

Consuming RSS feed in ASP.NET

Thanks to RSSToolKit, an open source component you can find at codeplex, consuming a RSS field to display, for instance, in your website has never been so easy.

Here is the code we use to display 3 posts of this blog on the official phoceis.com website (in a literal named lit_blog)

RssDocument rdoc = RssToolkit.Rss.RssDocument.Load(new System.Uri("http://blog.phoceis.com/feed/rss/"));
DataView dv = (DataView) rdoc.SelectItems(3);
lit_blog.Text = "
<ul>";
foreach (DataRow dr in dv.Table.Rows)
{
	lit_blog.Text += "
	<li><a href='" + dr["link"].ToString() + "' target="_blank">" + dr["title"].ToString() + "</a></li>";
}
lit_blog.Text += "</ul>";
Ecrit par julien dans : .NET | Tags : , ,
27
Nov
2008
0

Grab a file from the web and store it in your database using c#

If you want to download a file from the web and store it directly in a kind of blob field in your database

string url = "the url of the file you want to download";
byte[] b;
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
WebResponse myResp = myReq.GetResponse();
Stream stream = myResp.GetResponseStream();
using (BinaryReader br = new BinaryReader(stream))
{
	b = br.ReadBytes((int)stream.Length);
        br.Close();
}
myResp.Close();
// say we have a LINQ datacontext named "context", an entity video with a varbinary(max) 
// field named preview to store the content of the file (for instance a picture)
video vid = new video();
vid.preview = b;
context.videos.InsertOnSubmit(vid);
context.SubmitChanges();
Ecrit par julien dans : .NET | Tags : , ,
27
Nov
2008
0

Retrieve video details from YouTube using c#

Below is a code to retrieve a YouTube video’s details using the Google API.
You may first download and install the Google Data Api, and apply for a developer ID.

YouTubeService service = new YouTubeService("example app", "ytapi-Phoceis-Youtubeforkids-jktgue07-0", "AI39si6XU6CYi6Qo52i7qD7OLEZ7JBebKPGgHAzmN34UF23HRBYtcT7B_eWvoiTCDCaO7ePAaCFs6aCzeNNR535shbeH63IXNQ");
 
String videoEntryUrl = "http://gdata.youtube.com/feeds/api/videos/" + ID_of_your_video;
YouTubeEntry videoEntry = (YouTubeEntry)service.Get(videoEntryUrl);
 
if (videoEntry != null)
{
            tex_titre.Text = videoEntry.Title.Text;
            if (videoEntry.Media.Thumbnails.Count &gt; 0)
            {
                // here we populate an aspxcombobox (a component from DevExpress) with the collection of thumbnails of the video, but you may also use classic radiobutton
                com_images.DataSource = videoEntry.Media.Thumbnails;
                com_images.ImageUrlField = "Url";
                com_images.TextField = "Url";
                com_images.DataBind();
                com_images.SelectedIndex = 0;
            }
            tex_kw.Text = videoEntry.Media.Keywords.Value;
            lab_length.Text = videoEntry.Duration.Seconds.ToString();
}
Ecrit par julien dans : .NET | Tags : , , , ,

Propulsé par WordPress | Thème Aeros | TheBuckmaker.com WordPress Themes | Traduction WordPress tuto