我正在开发后端基于asp.net owin的应用程序。
在Startup.cs中,我具有IAppBuilder.useCookieAuthentication(){...}。成功通过身份验证后,可以通过我的所有Web API控制器中的HttpContext访问具有其角色的当前用户。

我的javascript客户端需要有关这些角色的知识,以便了解如何显示特定项目。例如:具有管理员角色的用户可以看到其他选项卡。

我的问题是:将这些角色“转移”到客户端的最佳方法是什么?是通过编写一些将返回这些角色的端点还是其他方式?

谢谢

最佳答案

我完全同意@cassandrad!

但是,如果要以纯文本形式访问它,则必须在TicketDataFormat中提供自己的CookieAuthenticationOptions实现。

public class CustomAccessTokenFormat : ISecureDataFormat<AuthenticationTicket>
{
    // If you want to do custom serialization and encryption
    public string Protect(AuthenticationTicket ticket)
    {
        return "UserName|Role1|Role2|..."; // your raw text serialization goes here
    }

    // Deserilaize and decrypt the ticket
    public AuthenticationTicket Unprotect(string strTicket)
    {
        return new AuthenticationTicket(null, null); // deserialize the plain text here into an AuthenticationTicket object
    }
}

09-18 15:02