小编Ada*_*igh的帖子

WCF:将Nonce添加到UsernameToken

我正在尝试连接到用Java编写的Web服务,但有些东西我无法弄清楚.

使用WCF和customBinding,几乎所有内容似乎都很好,除了SOAP消息的一部分,因为它缺少Nonce和Created部分节点.显然我错过了一些东西,所以如果你能指出我正确的方向,那就非常感激了.

这是自定义绑定:

<binding name="CustomHTTPBinding">
    <security includeTimestamp="false" authenticationMode="UserNameOverTransport" defaultAlgorithmSuite="Basic256" requireDerivedKeys="True"
              messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
    </security>
    <textMessageEncoding maxReadPoolSize="211" maxWritePoolSize="2132" messageVersion="Soap11"
                         writeEncoding="utf-8"/>
    <httpsTransport />
</binding>
Run Code Online (Sandbox Code Playgroud)

这是消息的相关部分:

<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <o:UsernameToken u:Id="uuid-c306efd1-e84c-410e-a2ad-1046b368582e-1">
        <o:Username>
            <!-- Removed-->
        </o:Username>
        <o:Password>
            <!-- Removed-->
        </o:Password>
    </o:UsernameToken>
</o:Security>
Run Code Online (Sandbox Code Playgroud)

这就是它的外观:

<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
 <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-25763165">
    <wsse:Username>..</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">..</wsse:Password>
    <wsse:Nonce>6ApOnLn5Aq9KSH46pzzcZA==</wsse:Nonce>
    <wsu:Created>2009-05-13T18:59:23.309Z</wsu:Created>
 </wsse:UsernameToken>
</wsse:Security>
Run Code Online (Sandbox Code Playgroud)

所以问题是:我如何在安全部分中引入Nonce和Created元素?

c# wcf web-services

24
推荐指数
4
解决办法
4万
查看次数

使用HttpModule进行异常处理

我们正在审查该公司系统的异常处理之一,并发现了一些有趣的事情.

大多数代码块(如果不是全部)都在try/catch块中,并且在catch块内部抛出新的BaseApplicationException - 这似乎来自企业库.我在这里遇到了一些麻烦,因为我没有看到这样做的好处.(在任何时候发生另一个例外)其中一个开发人员一直在使用该系统说这是因为该类负责发布异常(发送电子邮件和类似的东西),但他不太确定.在花了一些时间浏览代码之后,我非常有信心地说,这就是收集有关环境的信息而不是发布它.

我的问题是: - 将所有代码包装在try {} catch {}块中并且抛出新的异常是否合理?如果是,为什么?有什么好处?

我的个人意见是,使用HttpModule会更容易,注册Application事件的Error事件,并在模块内部执行必要的操作.如果我们走这条路,我们会错过什么吗?有什么缺点吗?

您的意见非常感谢.

c# asp.net exception-handling httpmodule

5
推荐指数
1
解决办法
4615
查看次数

Subversion Windows服务器

我一直在使用TortoiseSVN一段时间用于我的一些项目,但对于托管我总是使用其他一些公司.

现在是时候了,在我工作的公司,我们开始尝试它,我需要一些关于如何安装svn服务器的指针.我来到链接文本链接文本,但我有点不确定哪一个去,或者两者之间是否有任何区别.(我对visualSVN的唯一担心是,如果我是对的,它会包含Apache服务器,这可能会给我们造成问题,因为我们使用服务器我们也会将svn安装到其他目​​的,包括托管网站使用IIS)此外,能够通过Web访问存储库对我们来说并不重要,因为我们主要通过本地网络访问它.

那么任何一个要安装的建议?

干杯

svn version-control

5
推荐指数
2
解决办法
714
查看次数

如何在标记中"绑定"标签的Text属性

基本上我想找到一种ddo的方法:

<asp:Label ID="lID" runat="server" AssociatedControlID="txtId" Text="<%# MyProperty %>"></asp:Label>
Run Code Online (Sandbox Code Playgroud)

我知道我可以从后面的代码设置它(写lId.Text = MyProperty),但我更喜欢在标记中进行,我似乎无法找到解决方案.(MyProperty是一个字符串属性)欢呼

c# asp.net

3
推荐指数
2
解决办法
3万
查看次数

Web服务请求身份验证

我们真的被困在这里,所以我决定请你帮忙.

昨天我被要求帮助使用Web服务,获取WSDL的URL以及要使用的用户凭据.我从来没有真正与Web服务有任何关系,但对它们有一个大概的想法并看到一些例子,我认为它不会那么糟糕.显然我错了,因为我现在被困住了.

一切似乎都很好,代理类(或客户端)已生成,构建请求和发送它们也很好,除了身份验证部分.我们似乎无法弄明白该怎么做.

使用:

client.ChannelFactory.Credentials.UserName.UserName = "myusername";
client.ChannelFactory.Credentials.UserName.Password = "mypassword";
Run Code Online (Sandbox Code Playgroud)

似乎不起作用.(当我检查由client.Endpoint.Binding.CreateBindingElements()返回的BindingElementCollection时,没有SecurityBindingElement)

我已经尝试了很多其他方法,但我认为我缺少一些基本的东西,缺乏文档也没有真正帮助.

所以问题是:如何使用WCF调用Web服务时发送用户名和密码?

编辑: 只是为了澄清,请求应包含类似于此的内容:

 <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
     <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-25763165">
        <wsse:Username>username</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">1DiaGTkOLk/CZhDaEpbkAaKRfGw=</wsse:Password>
        <wsse:Nonce>6ApOnLn5Aq9KSH46pzzcZA==</wsse:Nonce>
        <wsu:Created>2009-05-13T18:59:23.309Z</wsu:Created>
     </wsse:UsernameToken>
  </wsse:Security>
Run Code Online (Sandbox Code Playgroud)

c# authentication wcf web-services

2
推荐指数
1
解决办法
6654
查看次数