我正在开发后端基于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
}
}