当前位置:编程学习 > C#/ASP.NET >>

WSE用户认证的问题!让我痛苦了几天了,帮帮我吧。。。

小弟最近学Web Service+WSE,一旦准备确认却window用户角色、调用Authorize()的时候就出现这样的报错: 

<faultstring>System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。 
   在 Service.Authorize(String role) 位置 f:\InvoiceManager\InvoiceManagerServer\App_Code\Service.cs:行号 35 
   在 Service.ViewAllApplication() 位置 f:\InvoiceManager\InvoiceManagerServer\App_Code\Service.cs:行号 50 
   --- 内部异常堆栈跟踪的结尾 --- </faultstring> 


请各位大哥帮忙解决啊,谢谢了  

  public void Authorize(string role)  
    {  
      
        IPrincipal p = RequestSoapContext.Current.Credentials.UltimateReceiver.GetClientToken  <UsernameToken>().Principal;  
      

        if (null != p&&p.IsInRole(role))  
        {  
            return;  
        }  
        else   
        {  
            throw new SoapException("Aceess denied.", new System.Xml.XmlQualifiedName("Authorization"));  
        }  
    } 
 [WebMethod] 
    public ConsumeRecord[] ViewAllApplication( ) 
    { 
        Authorize("Viewer"); 
        return this.SearchAllConsumeRecord(); 
    } --------------------编程问答-------------------- RequestSoapContext.Current.Credentials.UltimateReceiver.GetClientToken
都不检查一下值是否是Null就取成员 --------------------编程问答--------------------
引用 1 楼 jiangsheng 的回复:
RequestSoapContext.Current.Credentials.UltimateReceiver.GetClientToken 
都不检查一下值是否是Null就取成员
--------------------编程问答-------------------- RequestSoapContext.Current.Credentials.UltimateReceiver.GetClientToken 
都不检查一下值是否是Null就取成员 
 
 
高手出山啦
学习学习。 --------------------编程问答-------------------- 支持搂主,收藏 --------------------编程问答-------------------- --------------------编程问答-------------------- 帮顶下! --------------------编程问答-------------------- 过来学习的! --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  Web Services
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,