Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157385
  • 博文数量: 43
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-06 16:25
文章分类

全部博文(43)

文章存档

2015年(1)

2014年(12)

2008年(1)

2006年(29)

我的朋友

分类:

2006-08-05 09:43:07

微软专家:
Oliver Lu


一次登录,资源尽享(Single Sign-On)
微软专家专题讲座

很兴奋能够把微软的最新技术和大家一起分享,共同学习共同进步。^_^


Single Sing-On简介

怎样配置Single Sign-On

启用 Single Sign-On

指定 Single Sign-on 和应用程序定义的设置

创建加密密钥

编辑应用程序定义

管理应用程序定义的帐户信息

创建使用SSO技术的Web Part


using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.WebPartPages;

using Microsoft.SharePoint.Portal;
using Microsoft.SharePoint.Portal.SingleSignon;


//添加引用
using System.Net;
using System.IO;
//重新命名NameSpace为WPHttpRequest
namespace WPHttpRequest
{
	[DefaultProperty("Text"),
		ToolboxData("<{0}:HttpRequestWebPart runat=server>"),
		XmlRoot(Namespace="WPHttpRequest")]
     //重新命名Class为WPHttpRequest
	public class HttpRequestWebPart : Microsoft.SharePoint.WebPartPages.WebPart
	{
		//定义私有变量
		private const string c_Url = "http://"; //目标URL
		private const string defaultText = "";
		private string text=defaultText;
		private string _myurl = "";
		[Category("Custom Properties")]
		[DefaultValue(c_Url)]
		[WebPartStorage(Storage.Personal)]
		[FriendlyNameAttribute("Url")]
		[Description("Type the Url here.")]
		[Browsable(true)]
		[XmlElement(ElementName="Url")]
          //定义属性
		public string Url //目标URL
		{
			get
			{
				return _myurl;
			}
			set
			{
				_myurl = value;
			}
		}


		[Browsable(true),Category("Miscellaneous"),
			DefaultValue(defaultText),
			WebPartStorage(Storage.Personal),
			FriendlyName("Text"),Description("Text Property")]
		public string Text
		{
			get
			{
				return text;
			}

			set
			{
				text = value;
			}
		}
		//重载RenderWebPart,并调用GetHttpRequestContent获取目标URL的内容
protected override void RenderWebPart(HtmlTextWriter output)
		{
			this.Text = GetHttpRequestContent(this.Url);  
output.Write(Text);
		}
          //获取远端页面的信息
		private string GetHttpRequestContent(string url)
		{
			string respstr = "";
			try
			{
				Uri contentUrl = new Uri(url);
				WebRequest req = WebRequest.Create(contentUrl);
				//设置预先验证用户权限
req.PreAuthenticate = true;
				//建立网络身份验证
				string[] rgGetCredentialData = null;

				Credentials.GetCredentials( 1,"SSOApp", ref rgGetCredentialData);

				System.Net.NetworkCredential mycredential = 
new System.Net.NetworkCredential(rgGetCredentialData[0],rgGetCredentialData[1],rgGetCredentialData[2]); 

				req.Credentials = mycredential;
                   //获取远端返回的文件流
				WebResponse resp = req.GetResponse();
				Stream stream = resp.GetResponseStream();
				StreamReader sr = new StreamReader(stream);
				//以字符串形式读取数据流
respstr = sr.ReadToEnd();
				sr.Close(); 
			}
			catch (Exception ex)
			{
				//返回错误信息
return "Error: " + ex.Message;
			}
			return respstr;
		}
	}
}

HttpRequestWebPart

HttpRequestWebPart.

WPHttpRequest

WPHttpRequest.HttpRequestWebPart

  

    

      

         Namespace="WPHttpRequest"

         TypeName="*"

       />

    

  

  

添加Web Part

相关文档



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/smpscCodeAccessSecurityDevs.asp

阅读(913) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~