如何解决运营合同中的WCF身份验证
我正在尝试在WCF项目中实现身份验证。该项目是自托管的,并使用自定义绑定。由于我在尝试实现UserNameOverTransport身份验证时遇到问题,因此我正在考虑在服务合同内部实现身份验证(通常将是一项操作)
public Message GetData(Message input)
{
//authenticate
if (Request.userName == "test" && Request.password == "test123")
{
return;
}
Message response=null;
try
{
string str = "<note><to>Result </to></note>";
XmlDocument xmlResponse = new XmlDocument();
xmlResponse.LoadXml(str);
//return @"Is Authenticated in "+ ServiceSecurityContext.Current.PrimaryIdentity.IsAuthenticated.ToString();
response = Message.CreateMessage(MessageVersion.None,String.Empty,new System.Xml.XmlNodeReader(xmlResponse));
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return response;
}
-
可以这样做吗?
-
也如何从请求中检索用户名和密码?我的客户如下创建请求
private string PostRequestToURL(string strUrl,string strData) { try { strData = "<note><to>Tove </to></note>"; WebRequest request; request = WebRequest.Create(strUrl); request.Credentials = new System.Net.NetworkCredential("username","password"); request.Method = "Post"; request.ContentType = "text/xml"; // get default Web proxy IWebProxy myProxy = WebRequest.DefaultWebProxy; myProxy.Credentials = CredentialCache.DefaultCredentials; request.Proxy = myProxy; // Encode the XML string System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); byte[] byteStrData; byteStrData = encoding.GetBytes(strData); //// Write the encoded data to the request stream request.ContentLength = byteStrData.Length; Stream reqStream = request.GetRequestStream(); reqStream.Write(byteStrData,byteStrData.Length); reqStream.Close(); // get the response from server HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream respStream = response.GetResponseStream(); StreamReader strmReader = new StreamReader(respStream); string strResponse = strmReader.ReadToEnd(); return strResponse; } catch (Exception ex) { return ex.Message.ToString(); //Logger.LogEvent(ex,Logger.evtTypes.evtInfo,Logger.evtLevels.evtMin,LOGTYPE); } return ""; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。