Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / Web Services / July 2004

Tip: Looking for answers? Try searching our database.

WSE 2.0 - The security token could not be authenticated or authori

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
David M. Young - 11 Jun 2004 17:09 GMT
I posted this to microsoft.public.dotnet.framework.webservices.enhancements a few days ago, but I'm not getting any helpful responses.  I hope someone can help.

Here's my code for the Web Service (SimpleWseServer.ServicesMain.asmx)
[WebMethod]
public string HelloWorld(string username)
{
SoapContext ctxt = RequestSoapContext.Current;
foreach(SecurityToken token in ctxt.Security.Tokens)
{
 if(token is UsernameToken)
 {
  UsernameToken user = (UsernameToken)token;
  if(user.Username==username)
  {
   if(user.Principal.IsInRole(System.Net.Dns.GetHostName() + @"\Kings"))
    return "Hello, King " + username;
   return "Hello, " + username;
  }
 }
}
return "Hello, Liar";
}

Here the client code (it's a button click event in a WindowsForm)
private void btn_login_Click(object sender, System.EventArgs e)
{
string username = txt_username.Text;
string password = txt_password.Text;
SimpleWseClient.localhost.ServicesMainWse proxy = new
SimpleWseClient.localhost.ServicesMainWse();
proxy.Url = "http://localhost/SimpleWseServer/ServicesMain.asmx";
proxy.RequestSoapContext.Security.Tokens.Add(new UsernameToken(username,
password, PasswordOption.SendPlainText));
txt_response.Text = proxy.HelloWorld(username);
}

Here's the exception stack:
Additional information: Microsoft.Web.Services2.Security.SecurityFault: The
security token could not be authenticated or authorized
  at
Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.OnLogonUserFail
ed(UsernameToken token)
  at
Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.LogonUser(Usern
ameToken token)
  at
Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.AuthenticateTok
en(UsernameToken token)
  at
Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.VerifyToken(Sec
urityToken securityToken)
  at
Microsoft.Web.Services2.Security.Tokens.SecurityTokenManager.LoadXmlSecurity
Token(XmlElement element)
  at
Microsoft.Web.Services2.Security.Tokens.SecurityTokenManager.GetTokenFromXml
(XmlElement element)
  at Microsoft.Web.Services2.Security.Security.LoadXml(XmlElement element)
  at
Microsoft.Web.Services2.Security.SecurityInputFilter.ProcessMessage(SoapEnve
lope envelope)
  at Microsoft.Web.Services2.Pipeline.ProcessInputMessage(SoapEnvelope
envelope)
  at
Microsoft.Web.Services2.WebServicesExtension.BeforeDeserializeServer(SoapSer
verMessage message)

I can't figure out why Windows Authentication is failing?  I've enable tracing on both the input and output.  The input shows the correct username and password being passed.

The account I'm using is a local account and the group is local as well.  I can log in locally with that same username/password combination.  I've tried using the following for the username ( username and LOCALMACHINE\username).  I've even used my domain login and all receive the same error.  I've used the RunAs command to launch other applications as this user and that works.

I also downloaded the Hand-On-Lab (HOLDEVL34: WSE 2.0 Security and Policy)  and have tried the supplied "SecureInvoiceA" exercises, but those give the same error as above.

I'd like to move on to implementing my own UsernameTokenManager, but can concieve of doing so until this simple (so it seems) solution can be made to work.

Any help is appreciated.
dm_dal - 21 Jun 2004 21:06 GMT
Finally got a resolution.

On Win2k you have to grant "Act as part of operating system" in local
policies to the ASPNET account for this to work.

David

> I posted this to microsoft.public.dotnet.framework.webservices.enhancements a few days ago,
but I'm not getting any helpful responses.  I hope someone can help.

> Here's my code for the Web Service (SimpleWseServer.ServicesMain.asmx)
> [WebMethod]
[quoted text clipped - 34 lines]
> security token could not be authenticated or authorized
>    at

Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.OnLogonUserFail
> ed(UsernameToken token)
>    at

Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.LogonUser(Usern
> ameToken token)
>    at

Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.AuthenticateTok
> en(UsernameToken token)
>    at

Microsoft.Web.Services2.Security.Tokens.UsernameTokenManager.VerifyToken(Sec
> urityToken securityToken)
>    at

Microsoft.Web.Services2.Security.Tokens.SecurityTokenManager.LoadXmlSecurity
> Token(XmlElement element)
>    at

Microsoft.Web.Services2.Security.Tokens.SecurityTokenManager.GetTokenFromXml
> (XmlElement element)
>    at Microsoft.Web.Services2.Security.Security.LoadXml(XmlElement element)
>    at

Microsoft.Web.Services2.Security.SecurityInputFilter.ProcessMessage(SoapEnve
> lope envelope)
>    at Microsoft.Web.Services2.Pipeline.ProcessInputMessage(SoapEnvelope
> envelope)
>    at

Microsoft.Web.Services2.WebServicesExtension.BeforeDeserializeServer(SoapSer
> verMessage message)
>
> I can't figure out why Windows Authentication is failing?  I've enable tracing on both the input and output.  The input shows the correct username
and password being passed.

> The account I'm using is a local account and the group is local as well.  I can log in locally with that same username/password combination.  I've
tried using the following for the username ( username and
LOCALMACHINE\username).  I've even used my domain login and all receive the
same error.  I've used the RunAs command to launch other applications as
this user and that works.

> I also downloaded the Hand-On-Lab (HOLDEVL34: WSE 2.0 Security and Policy)  and have tried the supplied "SecureInvoiceA" exercises, but those give the
same error as above.

> I'd like to move on to implementing my own UsernameTokenManager, but can concieve of doing so until this simple (so it seems) solution can be made to
work.

> Any help is appreciated.
P - 15 Jul 2004 03:27 GMT
And of course you have to restart IIS afterward. Local security
settings will not take affect (even though it said so) until IIS got
re-started.

Pam
> Finally got a resolution.
>
[quoted text clipped - 102 lines]
> >
> > Any help is appreciated.

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.