- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想根据自定义成员资格和角色提供者对 WCF 服务的用户进行身份验证,但我不想必须使用证书来保护两者之间的流量。
是否可以使用 basicHttpBinding,在没有证书的情况下传递自定义凭据?
我之所以问,是因为我有一个 WCF 服务,所有成员(member)提供程序管道等都通过配置连接并托管在 IIS 下,但用户详细信息没有传递到 IIS。
我有一个网络安全的 WAN,所以我不担心消息加密。
已开启ASP.Net兼容,配置如下。都是 .Net 4.0;
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<membership defaultProvider="DemoMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="DemoMembershipProvider" type="DemoMembershipProvider" connectionStringName="SqlConn" applicationName="TestProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Clear" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="DemoRoleProvider" >
<providers>
<clear/>
<add name="DemoRoleProvider" connectionStringName="blah" applicationName="TestProvider" type="DemoRoleProvider" />
</providers>
</roleManager>
<customErrors mode="Off" />
</system.web>
<system.serviceModel>
<services>
<service name="DataService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="BindingConfiguration" contract="IDataService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="BindingConfiguration">
<security mode="None">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="DemoMembershipProvider" />
</serviceCredentials>
<serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="DemoRoleProvider" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
客户端代码为;
Console.WriteLine("Calling with valid credentials");
using (var y = new DataServiceRef.DataServiceClient())
{
y.ClientCredentials.UserName.UserName = "ryan";
y.ClientCredentials.UserName.Password = "password";
Console.WriteLine("Result: {0}", y.GetData("blah"));
}
最佳答案
您必须使用自定义绑定(bind),因为默认绑定(bind)不支持在没有安全通道(传输或消息安全都需要证书)的情况下发送用户名和密码。使用此自定义绑定(bind):
<customBinding>
<binding name="UsernamePasswordOverHttp">
<textMessageEncoding messageVersion="Soap11" />
<security
authenticationMode="UserNameOverTransport"
messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
allowInsecureTransport="true" />
<httpTransport />
</binding>
</customBinding>
另一个解决方案是使用 ClearUserNameBinding .
关于c# - 具有自定义 MembershipProvider 且没有 X.509 证书的 WCF,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531377/
场景: 构建供公司输入信息的应用程序。 我需要扩展 asp.net 中的内置成员资格提供程序。我的独特情况是我已经拥有每家公司的人口统计信息,但没有网络应用程序的用户 ID 和密码。我想用人口统计信息
我正在尝试使用带有 ASP MVC 的自定义 MembershipProvider 来保护我的应用程序中的 Controller 。 只是为了了解一些背景知识,我最终将使用网络服务来验证每个用户。 据
我想验证用于在 asp.net (.net 3.5) 中创建/更新用户的密码字段。密码将用于 MembershipProvider。 实现此目的的最佳方法是什么,以便验证将使用成员资格提供商的配置设置
我正在使用 SqlMemberShipProvider 并且它运行良好,但我希望 MembershipUser 具有一些其他属性,例如名字、姓氏、电话号码等。解决此问题的最佳方法是什么?我是否必须创建
我正在尝试在我的站点中实现 Asp.net 表单例份验证。通常,您在 web.config 中提供数据库连接字符串的名称。然而,由于我们的数据库设置有点复杂,我正在寻找一种方法来手动向 Members
我知道 MembershipProvider 位于 System.Web.Security 命名空间中。我在我的项目中添加了一个引用 System.Web,我在我的 .cs 文件中添加了一个 usin
我正在尝试在 asp.net 中编写自己的自定义 MembershipProvider,我想推出自己的登录页面。我们在登录时做了一些相当特殊的事情,所以我们不能使用默认的登录控件,所以我需要一种方法来
当覆盖 MembershipProvider 并直接调用它时,有没有办法在不手动查看配置文件的情况下填充 Initialize 方法的 NameValueCollection 配置参数? 很明显,这个
我对 .Net 中的 MembershipProvider 有一些问题,我一直无法找到明确的答案。 使用什么类型的加密,AES? 方法 EncryptPassword,它可以处理任何盐,还是我在传递它
我在我的 Web.Config 文件中注册了一个自定义 MembershipProvider 类。我正在使用 CaSTLe Windsor 使用控制反转,并且我已将自定义 MembershipProv
我正在构建一个自定义成员资格提供程序,我想知道我的自定义成员资格提供程序何时初始化? 实际上我正在使用 Entity Framework ,所以我需要了解是在每个方法中初始化 DbContext 还是
我正在尝试使用 CustomMembershipProvider 编写一些创建/删除/更改用户的测试。 CustomMembershipProvider 是 WebApp 程序集的一部分。 当我运行测
我的 web.config 和登录控件中有多个成员(member)提供程序, 我将根据带有提供商名称的下拉列表来使用提供商。 Web.config:
如何创建在 ASP.NET/MVC 网站中使用的 MembershipProvider? 它不会在您的数据库中生成您需要的表吗? 最佳答案 ASP.NET/MVC 的默认模板已在您的 web.conf
是否可以在不使用 MembershipUser 类的情况下创建自定义 MembershipProvider? 我想使用我自己的 User 类并保持整洁,我不想使用 MembershipUser 类,它
我正在努力拆分我目前拥有的现有工作应用程序,以便更好地理解 n 层结构。此应用程序使用自定义成员身份和角色提供程序,并带有表单例份验证。 当前,所有数据访问和业务逻辑都在同一个 ASP.Net 解决方
我尝试在我自己的数据库中使用自定义 MemberShipUser 实现自定义 MembershipPriver(具有特定的用户表模型): 这是完全不同的文件: iTwitterMembershipPr
ASP.NET 中的 MembershipProvider 类使用什么在 HTTP 级别对用户进行身份验证?是 Cookie 还是 Session? 最佳答案 简答: Cookies。 长答案: 都没
我最近开始研究 ASP.NET MVC,但这个问题也适用于经典的 ASP.NET。就其值(value)而言,我对表单例份验证和成员身份提供程序也不是很了解。 我正在尝试编写我自己的 Membershi
我已经使用自定义数据存储实现了我自己的自定义 MembershipProvider。到目前为止没有问题。我希望人们使用他们的电子邮件而不是用户名登录。因为我有自己的数据存储,所以这不是主要问题,我可以
我是一名优秀的程序员,十分优秀!