是否有可能以某种方式扩展User.Identity结构(ASP.Net/MVC)?

时间:2011-09-21 21:46:17

标签: asp.net-mvc

是否可以以某种方式存储特定于当前登录用户的其他数据?

1 个答案:

答案 0 :(得分:2)

当然!如果您不熟悉撰写扩展程序,则有关于该主题的VB.NETC#指南。

您需要扩展System.Security.Principal.IIdentity界面。举个例子:

<强>声明:

Imports System.Runtime.CompilerServices

Module Extensions

    <Extension()>
    Function GetMyCustomProperty(anIdentity As System.Security.Principal.IIdentity, myParameter As Integer) As Object

        Return New Object()

    End Function

End Module

<强>用法:

User.Identity.GetMyCustomProperty(4)

备注:

  • C#代码是公平的,所以值得一看 指导如何实施扩展。运行这个 代码通过VB.NET =&gt; C#转换器还不够。

  • 扩展可能只是方法。您可能无法编写自定义属性。如果您想要类似属性的行为,这可能意味着实现getter / setter方法。

修改

在看到您的评论之后,我假设您这样做是为了提供类似于用户个人资料的一些粗略功能。如果您想要此功能,请考虑使用配置文件提供程序与您当前使用的任何成员资格一致。