我是WCF的新手(我大部分时间都在使用ASP.NET Web API和MVC)。
我想知道WCF中是否有任何AuthorizeAttribute(自定义实现没问题)。
例如:
+)在Web API中,我有以下步骤:
- )通过电子邮件&拨打[POST] api / login登录密码
- )存储电子邮件&在前端站点密码,每次前端发送请求,他们必须包括电子邮件和&用于身份验证的标头中的密码。
- )在后端,AuthorizeAttribute读取电子邮件&请求标头的密码,然后进行验证,然后验证请求是否有效。
我的问题是: 我的WCF应用程序可以使用属性来执行与API相同的工作吗?
谢谢
答案 0 :(得分:0)
您可以实施自定义UserNamePasswordValidator:
public class MyValidator : UserNamePasswordValidator
{
public override void Validate(string user, string password)
{
// Do your validation logic.
// In case of unauthorized access throw appropriate exception.
}
}
并配置服务行为以使用它:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="behavior_name">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="SomeNamespace.MyValidator, AssemblyName" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
存储密码也不是一个好主意。最好通过此登录生成一个身份验证令牌。密码,并使用该令牌。