一次登录,资源尽享(Single Sign-On)
一次登录,资源尽享(Single Sign-On) |
微软专家专题讲座
|
|
|
||
Single Sing-On简介
怎样配置Single Sign-On
启用 Single Sign-On
指定 Single Sign-on 和应用程序定义的设置
创建加密密钥
编辑应用程序定义
管理应用程序定义的帐户信息
创建使用SSO技术的Web Part
http://msdn.microsoft.com/library/en-us/dnspts/html/sharepoint_webparttemplates.aspusing 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></{0}:HttpRequestWebPart>"), 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; } } }
<?xml version="1.0" encoding="utf-8"?>
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" >
<Title>HttpRequestWebPart</Title>
<Description>HttpRequestWebPart.</Description>
<Assembly>WPHttpRequest</Assembly>
<TypeName>WPHttpRequest.HttpRequestWebPart</TypeName>
<!-- Specify default values for any additional base class or custom properties here. -->
</WebPart>
<?xml version="1.0"?>
<!-- You need to have just one manifest per CAB project for Web Part Deployment.-->
<!-- This manifest file can have multiple assembly nodes.-->
<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">
<Assemblies>
<Assembly FileName="WPHttpRequest.dll">
<SafeControls>
<SafeControl
Namespace="WPHttpRequest"
TypeName="*"
/>
</SafeControls>
</Assembly>
</Assemblies>
<DwpFiles>
<DwpFile FileName="WPHttpRequest.dwp"/>
</DwpFiles>
</WebPartManifest>
添加Web Part
相关文档
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/nsPortalSingleSignOn.asphttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnspts/html/sharepoint_northwindwebparts.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/smpscCodeAccessSecurityDevs.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnspts/html/sharepoint_northwindwebparts.asp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!