作为MVC的WCF中的AuthorizeAttribute

时间:2016-08-25 08:57:01

标签: wcf wcf-security

我是WCF的新手(我大部分时间都在使用ASP.NET Web API和MVC)。

我想知道WCF中是否有任何AuthorizeAttribute(自定义实现没问题)。

例如:

+)在Web API中,我有以下步骤:

- )通过电子邮件&拨打[POST] api / login登录密码

- )存储电子邮件&在前端站点密码,每次前端发送请求,他们必须包括电子邮件和&用于身份验证的标头中的密码。

- )在后端,AuthorizeAttribute读取电子邮件&请求标头的密码,然后进行验证,然后验证请求是否有效。

我的问题是: 我的WCF应用程序可以使用属性来执行与API相同的工作吗?

谢谢

1 个答案:

答案 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>

存储密码也不是一个好主意。最好通过此登录生成一个身份验证令牌。密码,并使用该令牌。