SharePoint中的匿名访问

SharePoint确实让人欢喜让人忧,繁琐的各种设置,足于让人晕倒!小弟有幸接触SPS超强功能的门户平台,也让我激动万分!真想说原来网站还可以这样做呀!废话连篇,言归正转,这只是在众多朋友的支持帮助下的一些心得。不对之处还多纠正。
我们主要讲述在一个应用了SPS的WEB APP中的一些配置(Portal中的设置与通过代码访问WSS对象模型时的设置)
1.在Portal中的匿名访问设置其实很简单,
  首先,确保IIS中Portal Site的身份验证不为匿名访问,因为IIS如果启用匿名,则Portal Site中的Site Setting将不可见(无权限),当然我们在IIS中只设置windows 集成访问即可,这时我们进入Portal Site中的Site Setting,进入“管理安全性和附加设置”>>”更改匿名访问设置”,选择第二项“区域、内容和搜索”。
  再次,如果您要访问TeamSite的内容的话,也要对相应的Sites进行设置。同样进入“Site Setting“>>“转到网站管理”>>“更改匿名访问”,选择可访问“整个网站”
至于,代码中的配置,小弟整理一下再放上。
终于有点空来补充未完成的部分
2.在代码中的设置
     a. 在web.config中设置<authentication mode="None" />
     b. 在要调用WSS对象模型前 模拟管理员用户,具体代码如下:
None.gif WindowsImpersonationContext  wic  =  CreateIdentity (SPSHelper.GetSpsUi
None.gifd,SPSHelper.GetDomainName,SPSHelper.GetSpsPwd).Impersonate();

ContractedBlock.gif ExpandedBlockStart.gif 虚拟管理员用户 #region 虚拟管理员用户
InBlock.gif
public static WindowsIdentity CreateIdentity(string User, string Domain, string Password)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{                IntPtr tokenHandle = new IntPtr(0);
InBlock.gif                
const int LOGON32_PROVIDER_DEFAULT = 0;
InBlock.gif                
const int LOGON32_LOGON_NETWORK = 3;
InBlock.gif                tokenHandle 
= IntPtr.Zero;
InBlock.gif                
// Call LogonUser to obtain a handle to an access token.
InBlock.gif
                bool returnValue = LogonUser(User, Domain, Password, 
InBlock.gif                    LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT,
InBlock.gif                    
ref tokenHandle);
InBlock.gif                
if (false == returnValue)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
int ret = Marshal.GetLastWin32Error();
InBlock.gif                    
throw new Exception("LogonUser failed with error code: " +  ret);
ExpandedSubBlockEnd.gif                }

InBlock.gif                System.Diagnostics.Debug.WriteLine(
"Created user token: " + tokenHandle);
InBlock.gif                WindowsIdentity id 
= new WindowsIdentity(tokenHandle);
InBlock.gif                CloseHandle(tokenHandle);
InBlock.gif                
return id;
ExpandedSubBlockEnd.gif            }

InBlock.gif[DllImport(
"advapi32.dll", SetLastError=true)]
InBlock.gif
private static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword,
InBlock.gif                
int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
InBlock.gif[DllImport(
"kernel32.dll", CharSet=CharSet.Auto)]
InBlock.gif
private extern static bool CloseHandle(IntPtr handle);
InBlock.gif
ExpandedBlockEnd.gif
#endregion
 虚拟管理员用户
None.gif

3.Portal 与 TeamSite设置完毕后,最后把IIS启用“匿名访问”与“window集成访问”!大功告成,访问web app时,服务器自动启用匿名访问登录,在要访问SPS时用Impersonate 访问。

转载于:https://www.cnblogs.com/AndyZheng/archive/2004/12/18/78819.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值