小编new*_*nth的帖子

ClaimsAuthenticationManager.Authenticate永远不会被调用

我想在身份验证期间向Principal添加一些额外的声明.我正在尝试在使用Windows身份验证的 MVC 4.5项目中实现自定义ClaimsAuthenticationManager :

namespace Project.Infrastructure
{
    public class ClaimsTransformer : ClaimsAuthenticationManager
    {
        public override ClaimsPrincipal Authenticate(string resourceName, ClaimsPrincipal incomingPrincipal)
        {
            if (incomingPrincipal != null && incomingPrincipal.Identity.IsAuthenticated == true)
            {
                ((ClaimsIdentity)incomingPrincipal.Identity).AddClaim(new Claim(ClaimTypes.Role, "Admin"));
            }

            return incomingPrincipal;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我将web.config设置为使用我的自定义类:

<configSections>
    <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>
Run Code Online (Sandbox Code Playgroud)

<system.identityModel>
    <identityConfiguration>
      <claimsAuthenticationManager type="Project.Infrastructure.ClaimsTransformer, [AssemblyName]" />
    </identityConfiguration>
</system.identityModel>
Run Code Online (Sandbox Code Playgroud)

但是Authenticate方法永远不会被调用.我错过了什么吗?

c# asp.net-mvc claims-based-identity wif asp.net-mvc-4

6
推荐指数
1
解决办法
2836
查看次数