Turning permissions into claims is generally a good idea, if that matches the requirements of the application. One of the benefits of claims based security is the decoupling between the user's meta data (name, role, age, permission, ...) and the applications security demands. If for example some "action" requires the user to be of a certain age, only a simple check HasClaim(c => c.Type == Age && c.Value >= 18) is necessary. And if it requires a simple permission, why not just check HasClaim(CanAccessX)?
Many applications (mis)use groups / roles like "CanAccessX" / "CanReadY" / "CanWriteZ" to implement a less complicated (= better) security mechanism. With claims this concept becomes somehow natural.
Secondly, cookie bloating can be an issue, though. Like for example token bloating with Kerberos can be an issue, if a user has too much groups / roles / permissions / whatever. One approach to solve this can be some kind of role based security in front of claims based security: if there are n roles for m permissions (n should be much less than m), you can only write the n roles to the cookie, but convert them behind the scenes within a simple module / middleware. Another solution may be a custom identity / permission mapping, so you have only to write the user's identity to the cookie, but match it with its (cached) permissions before actually processing the request.
I would start with the direct approach (just write all the claims to the cookie). Then, if it gets too big and compromises application's performance, you can optimize it's behavior with a more or less complicated module / middleware, which should not affect the actual "code".
Note, there are already .NET mechanisms to handle that cookie stuff securely: for classic (current) IIS applications you can use the Session Authentication Module, for modern (future) OWIN applications you can use a Cookie Authentication Middleware.
new Claim("http://schemas.example.com/identity/claims/permission", "CanAccessX"), but cookie bloating may be a problem though. If i remember correctly you can useSessionAuthenticationModulefor the cookie stuff; there should be even a modern "OWIN cookie authentication middleware" approach. - Axel Heer