Pic*_*els 1 asp.net security asp.net-membership
我正在编写自己的自定义Identity类,它实现了IIdentity.我不需要更改默认方法IsAuthenticated但现在我想知道默认的IIdentity如何确定它应该返回true还是false?
我想在我正在使用的FormsAuthenticationTicket中找到答案,但不确定这是否正确.
提前致谢,
Pickels
IIdentity
ASP.Net处理程序的上下文中没有"默认".
有一个GenericIdentity
传递给 GenericPrincipal
它是User
一个ASP.Net处理程序的默认值,它的行为是,如果它使用非空用户名实例化,那么它将被验证.
例如
public virtual bool IsAuthenticated
{
get
{
return !this.m_name.Equals("");
}
}
Run Code Online (Sandbox Code Playgroud)
也就是说,IsAuthenticated的确定完全是任意的,并且类的实现IIdentity
完全负责实现这个逻辑.
通常,没有用于实例化未经身份验证的主体/身份的用例,因为这是由asp.net运行时自动完成的,因此在大多数情况下IIdentity
使用"哑" 实现您的自定义IsAuthenticated
返回true
应该是合适的.
此外,尽管全面实施IPrincipal
并IIdentity
是微不足道的,你也可以简单地从派生GenericPrincipal
和GenericIdentity
减少的代码,你需要保持量.
在上下文中,FormsAuthentication
如果用户经过身份验证,并且User
将是具有RolePrincipal
类型标识的实例,FormsIdentity
并且它的实现IsAuthenticated
是超级复杂的,则您将只有一张票;-) ...
public bool IsAuthenticated
{
get
{
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
希望有助于澄清事情.
归档时间: |
|
查看次数: |
3526 次 |
最近记录: |